Java中对List集合的常用操作详解
作者:jingxian 发布时间:2023-05-02 23:52:47
目录:
1.list中添加,获取,删除元素;
2.list中是否包含某个元素;
3.list中根据索引将元素数值改变(替换);
4.list中查看(判断)元素的索引;
5.根据元素索引位置进行的判断;
6.利用list中索引位置重新生成一个新的list(截取集合);
7.对比两个list中的所有元素;
8.判断list是否为空;
9.返回Iterator集合对象;
10.将集合转换为字符串;
11.将集合转换为数组;
12.集合类型转换;
备注:内容中代码具有关联性。
1.list中添加,获取,删除元素;
添加方法是:.add(e);
获取方法是:.get(index);
删除方法是:.remove(index);
按照索引删除;.remove(Object o);
按照元素内容删除;
List<String> person=new ArrayList<>();
person.add("jackie"); //索引为0 //.add(e)
person.add("peter"); //索引为1
person.add("annie"); //索引为2
person.add("martin"); //索引为3
person.add("marry"); //索引为4
person.remove(3); //.remove(index)
person.remove("marry"); //.remove(Object o)
String per="";
per=person.get(1);
System.out.println(per); ////.get(index)
for (int i = 0; i < person.size(); i++) {
System.out.println(person.get(i)); //.get(index)
}
2.list中是否包含某个元素;
方法:.contains(Object o); 返回true或者false
List<String> fruits=new ArrayList<>();
fruits.add("苹果");
fruits.add("香蕉");
fruits.add("桃子");
//for循环遍历list
for (int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
}
String appleString="苹果";
//true or false
System.out.println("fruits中是否包含苹果:"+fruits.contains(appleString));
if (fruits.contains(appleString)) {
System.out.println("我喜欢吃苹果");
}else {
System.out.println("我不开心");
}
3.list中根据索引将元素数值改变(替换);
注意 .set(index, element); 和 .add(index, element); 的不同;
String a="白龙马", b="沙和尚", c="八戒", d="唐僧", e="悟空";
List<String> people=new ArrayList<>();
people.add(a);
people.add(b);
people.add(c);
people.set(0, d); //.set(index, element); //将d唐僧放到list中索引为0的位置,替换a白龙马
people.add(1, e); //.add(index, element); //将e悟空放到list中索引为1的位置,原来位置的b沙和尚后移一位
//增强for循环遍历list
for(String str:people){
System.out.println(str);
}
4.list中查看(判断)元素的索引;
注意:.indexOf(); 和 lastIndexOf()的不同;
List<String> names=new ArrayList<>();
names.add("刘备"); //索引为0
names.add("关羽"); //索引为1
names.add("张飞"); //索引为2
names.add("刘备"); //索引为3
names.add("张飞"); //索引为4
System.out.println(names.indexOf("刘备"));
System.out.println(names.lastIndexOf("刘备"));
System.out.println(names.indexOf("张飞"));
System.out.println(names.lastIndexOf("张飞"));
5.根据元素索引位置进行的判断;
if (names.indexOf("刘备")==0) {
System.out.println("刘备在这里");
}else if (names.lastIndexOf("刘备")==3) {
System.out.println("刘备在那里");
}else {
System.out.println("刘备到底在哪里?");
}
6.利用list中索引位置重新生成一个新的list(截取集合);
方法: .subList(fromIndex, toIndex);.size() ; 该方法得到list中的元素数的和
List<String> phone=new ArrayList<>();
phone.add("三星"); //索引为0
phone.add("苹果"); //索引为1
phone.add("锤子"); //索引为2
phone.add("华为"); //索引为3
phone.add("小米"); //索引为4
//原list进行遍历
for(String pho:phone){
System.out.println(pho);
}
//生成新list
phone=phone.subList(1, 4); //.subList(fromIndex, toIndex) //利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3
for (int i = 0; i < phone.size(); i++) { // phone.size() 该方法得到list中的元素数的和
System.out.println("新的list包含的元素是"+phone.get(i));
}
7.对比两个list中的所有元素;
//两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象
//1.<BR>if (person.equals(fruits)) {
System.out.println("两个list中的所有元素相同");
}else {
System.out.println("两个list中的所有元素不一样");
}
//2.
if (person.hashCode()==fruits.hashCode()) {
System.out.println("我们相同");
}else {
System.out.println("我们不一样");
}
8.判断list是否为空;
//空则返回true,非空则返回false
if (person.isEmpty()) {
System.out.println("空的");
}else {
System.out.println("不是空的");
}
9.返回Iterator集合对象;
System.out.println("返回Iterator集合对象:"+person.iterator());
1+0.将集合转换为字符串;
String liString="";
liString=person.toString();
System.out.println("将集合转换为字符串:"+liString);
11.将集合转换为数组;
System.out.println("将集合转换为数组:"+person.toArray());
12.集合类型转换;
//1.默认类型
List<Object> listsStrings=new ArrayList<>();
for (int i = 0; i < person.size(); i++) {
listsStrings.add(person.get(i));
}
//2.指定类型
List<StringBuffer> lst=new ArrayList<>();
for(String string:person){
lst.add(StringBuffer(string));
}
附完整代码:
package MyTest01;
import java.util.ArrayList;
import java.util.List;
public class ListTest01 {
public static void main(String[] args) {
//list中添加,获取,删除元素
List<String> person=new ArrayList<>();
person.add("jackie"); //索引为0 //.add(e)
person.add("peter"); //索引为1
person.add("annie"); //索引为2
person.add("martin"); //索引为3
person.add("marry"); //索引为4
person.remove(3); //.remove(index)
person.remove("marry"); //.remove(Object o)
String per="";
per=person.get(1);
System.out.println(per); ////.get(index)
for (int i = 0; i < person.size(); i++) {
System.out.println(person.get(i)); //.get(index)
}
//list总是否包含某个元素
List<String> fruits=new ArrayList<>();
fruits.add("苹果");
fruits.add("香蕉");
fruits.add("桃子");
//for循环遍历list
for (int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
}
String appleString="苹果";
//true or false
System.out.println("fruits中是否包含苹果:"+fruits.contains(appleString));
if (fruits.contains(appleString)) {
System.out.println("我喜欢吃苹果");
}else {
System.out.println("我不开心");
}
//list中根据索引将元素数值改变(替换)
String a="白龙马", b="沙和尚", c="八戒", d="唐僧", e="悟空";
List<String> people=new ArrayList<>();
people.add(a);
people.add(b);
people.add(c);
people.set(0, d); //.set(index, element) //将d唐僧放到list中索引为0的位置,替换a白龙马
people.add(1, e); //.add(index, element); //将e悟空放到list中索引为1的位置,原来位置的b沙和尚后移一位
//增强for循环遍历list
for(String str:people){
System.out.println(str);
}
//list中查看(判断)元素的索引
List<String> names=new ArrayList<>();
names.add("刘备"); //索引为0
names.add("关羽"); //索引为1
names.add("张飞"); //索引为2
names.add("刘备"); //索引为3
names.add("张飞"); //索引为4
System.out.println(names.indexOf("刘备"));
System.out.println(names.lastIndexOf("刘备"));
System.out.println(names.indexOf("张飞"));
System.out.println(names.lastIndexOf("张飞"));
//根据元素索引位置进行的判断
if (names.indexOf("刘备")==0) {
System.out.println("刘备在这里");
}else if (names.lastIndexOf("刘备")==3) {
System.out.println("刘备在那里");
}else {
System.out.println("刘备到底在哪里?");
}
//利用list中索引位置重新生成一个新的list(截取集合)
List<String> phone=new ArrayList<>();
phone.add("三星"); //索引为0
phone.add("苹果"); //索引为1
phone.add("锤子"); //索引为2
phone.add("华为"); //索引为3
phone.add("小米"); //索引为4
//原list进行遍历
for(String pho:phone){
System.out.println(pho);
}
//生成新list
phone=phone.subList(1, 4); //.subList(fromIndex, toIndex) //利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3
for (int i = 0; i < phone.size(); i++) { // phone.size() 该方法得到list中的元素数的和
System.out.println("新的list包含的元素是"+phone.get(i));
}
//对比两个list中的所有元素
//两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象
if (person.equals(fruits)) {
System.out.println("两个list中的所有元素相同");
}else {
System.out.println("两个list中的所有元素不一样");
}
if (person.hashCode()==fruits.hashCode()) {
System.out.println("我们相同");
}else {
System.out.println("我们不一样");
}
//判断list是否为空
//空则返回true,非空则返回false
if (person.isEmpty()) {
System.out.println("空的");
}else {
System.out.println("不是空的");
}
//返回Iterator集合对象
System.out.println("返回Iterator集合对象:"+person.iterator());
//将集合转换为字符串
String liString="";
liString=person.toString();
System.out.println("将集合转换为字符串:"+liString);
//将集合转换为数组,默认类型
System.out.println("将集合转换为数组:"+person.toArray());
////将集合转换为指定类型(友好的处理)
//1.默认类型
List<Object> listsStrings=new ArrayList<>();
for (int i = 0; i < person.size(); i++) {
listsStrings.add(person.get(i));
}
//2.指定类型
List<StringBuffer> lst=new ArrayList<>();
for(String string:person){
lst.add(StringBuffer(string));
}
}
private static StringBuffer StringBuffer(String string) {
return null;
}
}
猜你喜欢
- Jedis事务我们使用JDBC连接Mysql的时候,每次执行sql语句之前,都需要开启事务;在MyBatis中,也需要使用openSessi
- 本文实例为大家分享了java实现员工工资管理系统的具体代码,供大家参考,具体内容如下一、题目要求设计员工工资管理系统,实现以下功能:(1)输
- 对于java开发人员来说,Idea的普及率已经很高了。但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优秀的IDE
- 验证码的实现原理: 在一个Servlet中生成验证,并把验证码上的数据保存在Session,用户提交验证码之后,会提交给另外一个
- @PostConstruct不被调用的原因如果在配置文件中配置使用,延迟加载的话如图被@Service等注解的类,需要在注入使用的时候,才会
- 1.使用的是maven项目,添加依赖<!-- mybatis-plus begin --> <depend
- 一、No serializer found for class org.hibernate.proxy.pojo.bytebuddy.Byt
- 前言本文主要给大家介绍了关于Spring中@Scheduled和HttpClient的坑,分享出来供大家参考学习,下面话不多说了,来一起看看
- 本文实例讲述了java生成xml格式文件的方法。分享给大家供大家参考,具体如下:这里演示利用Java生成xml格式文件Demo中所用到的ja
- 因为线程重用导致的信息错乱的bugThreadLocal一般用于线程间的数据隔离,通过将数据缓存在ThreadLocal中,可以极大的提升性
- 本文实例为大家分享了java实现单链表、双向链表的相关代码,供大家参考,具体内容如下java实现单链表:package code;class
- 为什么需要ThreadLocalRandomjava.util.Random一直都是使用比较广泛的随机数生成工具类,而且java.lang.
- package other;import java.security.MessageDigest;import java.security.
- 概述对于多线程程序来说,生产者和消费者模型是非常经典的模型。更加准确的说,应该叫“生产者-消费者-仓库模型”。离开了仓库,生产者、消费者就缺
- jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源
- 简介LinkedBlockingQueue是一个阻塞的有界队列,底层是通过一个个的Node节点形成的链表实现的,链表队列中的头节点是一个空的
- 我们先来看本地如何生成图片验证码的,再来写输出到网页的验证码如何实现。先来看最简单的—实现的功能是,将一个字符串变成图片写入到文件中实现代码
- 1.Mybatis概述 MyBatis 是一款
- SpringBoot使用过滤器、 * 和 * 一、SpringBoot使用过滤器Spring boot过滤器的使用(两种方式)使用sprin
- AOP我想大家都很清楚,有时候我们需要处理一些请求日志,或者对某些方法进行一些监控,如果出现例外情况应该进行怎么样的处理,现在,我们从spr