Java中对List集合的常用操作详解

 更新时间:2016年07月07日 09:51:46   投稿:jingxian  
下面小编就为大家带来一篇Java中对List集合的常用操作详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Java技术迷

目录:

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);

按照元素内容删除;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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); 的不同;

1
2
3
4
5
6
7
8
9
10
11
12
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()的不同;

1
2
3
4
5
6
7
8
9
10
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.根据元素索引位置进行的判断;

1
2
3
4
5
6
7
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中的元素数的和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
2
3
4
5
6
7
8
9
10
11
//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

1
2
3
4
5
if (person.isEmpty()) {
  System.out.println("空的");
}else {
  System.out.println("不是空的");
}

9.返回Iterator集合对象;

1
System.out.println("返回Iterator集合对象:"+person.iterator());

1+0.将集合转换为字符串;

1
2
3
String liString="";
liString=person.toString();
System.out.println("将集合转换为字符串:"+liString);

11.将集合转换为数组;

1
System.out.println("将集合转换为数组:"+person.toArray());

12.集合类型转换;

1
2
3
4
5
6
7
8
9
10
//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));
}

附完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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;
  }
  
  
  }

以上这篇Java中对List集合的常用操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

相关文章

  • java中SynchronizedList和Vector的区别详解

    java中SynchronizedList和Vector的区别详解

    这篇文章主要介绍了java中SynchronizedList和Vector的区别详解,Vector是java.util包中的一个类。 SynchronizedList是java.util.Collections中的一个静态内部类。,需要的朋友可以参考下
    2019-06-06
  • jsoup如何爬取图片到本地

    jsoup如何爬取图片到本地

    这篇文章主要为大家详细介绍了jsoup如何爬取图片到本地,jsoup爬取网站信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java内存模型原子性原理及实例解析

    Java内存模型原子性原理及实例解析

    这篇文章主要介绍了Java内存模型原子性原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java线程同步及实现方法详解

    Java线程同步及实现方法详解

    这篇文章主要介绍了Java线程同步及实现方法详解,当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常,需要的朋友可以参考下
    2023-11-11
  • 浅析Java中print、printf、println的区别

    浅析Java中print、printf、println的区别

    以下是对Java中print、printf、println的区别进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • 浅谈Java解释器模式

    浅谈Java解释器模式

    这篇文章主要介绍了Java基于解释器模式实现定义一种简单的语言功能,简单描述了解释器模式的概念、功能及Java使用解释器模式定义一种简单语言的相关实现与使用技巧,需要的朋友可以参考下
    2021-10-10
  • Java实现布隆过滤器的几种方式总结

    Java实现布隆过滤器的几种方式总结

    这篇文章给大家总结了几种Java实现布隆过滤器的方式,手动硬编码实现,引入Guava实现,引入hutool实现,通过redis实现等几种方式,文中有详细的代码和图解,需要的朋友可以参考下
    2023-07-07
  • SpringBoot 调用外部接口的三种实现方法

    SpringBoot 调用外部接口的三种实现方法

    Spring Boot调用外部接口的方式有多种,常见的有以下三种方式:RestTemplate、Feign 和 WebClient,本文就详细介绍一下,感兴趣的可以了解一下
    2023-08-08
  • springboot项目打成jar包后无法获取static下的静态资源文件的问题分析

    springboot项目打成jar包后无法获取static下的静态资源文件的问题分析

    这篇文章主要介绍了springboot项目打成jar包后无法获取static下的静态资源文件的问题分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java计算黑洞数的方法示例

    Java计算黑洞数的方法示例

    这篇文章主要介绍了Java计算黑洞数的方法,简单描述了黑洞数的概念及具体计算方法,涉及java数值运算相关操作技巧,需要的朋友可以参考下
    2017-12-12

最新评论