List集合

简介: List集合

2.List集合

2.1List集合的概述和特点【记忆】

  • List集合的概述
  • 有序集合,这里的有序指的是存取顺序
  • 用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素
  • 与Set集合不同,列表通常允许重复的元素
  • List集合的特点
  • 存取有序
  • 可以重复
  • 有索引

2.2List集合的特有方法【应用】

  • 方法介绍
方法名 描述
void add(int index,E element) 在此集合中的指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素
  • 示例代码

public class MyListDemo {

   public static void main(String[] args) {

       List<String> list = new ArrayList<>();

       list.add("aaa");

       list.add("bbb");

       list.add("ccc");

       //method1(list);

       //method2(list);

       //method3(list);

       //method4(list);

   }

   private static void method4(List<String> list) {

       //        E get(int index)      返回指定索引处的元素

       String s = list.get(0);

       System.out.println(s);

   }

   private static void method3(List<String> list) {

       //        E set(int index,E element)    修改指定索引处的元素,返回被修改的元素

       //被替换的那个元素,在集合中就不存在了.

       String result = list.set(0, "qqq");

       System.out.println(result);

       System.out.println(list);

   }

   private static void method2(List<String> list) {

       //        E remove(int index)       删除指定索引处的元素,返回被删除的元素

       //在List集合中有两个删除的方法

       //第一个 删除指定的元素,返回值表示当前元素是否删除成功

       //第二个 删除指定索引的元素,返回值表示实际删除的元素

       String s = list.remove(0);

       System.out.println(s);

       System.out.println(list);

   }

   private static void method1(List<String> list) {

       //        void add(int index,E element) 在此集合中的指定位置插入指定的元素

       //原来位置上的元素往后挪一个索引.

       list.add(0,"qqq");

       System.out.println(list);

   }

}

2.3List集合的五种遍历方式【应用】

  1. 迭代器
  2. 列表迭代器
  3. 增强for
  4. Lambda表达式
  5. 普通for循环

代码示例:

//创建集合并添加元素

List<String> list = new ArrayList<>();

list.add("aaa");

list.add("bbb");

list.add("ccc");

//1.迭代器

/*Iterator<String> it = list.iterator();

    while(it.hasNext()){

       String str = it.next();

       System.out.println(str);

}*/

//2.增强for

//下面的变量s,其实就是一个第三方的变量而已。

//在循环的过程中,依次表示集合中的每一个元素

/* for (String s : list) {

      System.out.println(s);

  }*/

//3.Lambda表达式

//forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素

//并把每一个元素传递给下面的accept方法

//accept方法的形参s,依次表示集合中的每一个元素

//list.forEach(s->System.out.println(s) );

//4.普通for循环

//size方法跟get方法还有循环结合的方式,利用索引获取到集合中的每一个元素

/*for (int i = 0; i < list.size(); i++) {

           //i:依次表示集合中的每一个索引

           String s = list.get(i);

           System.out.println(s);

       }*/

// 5.列表迭代器

//获取一个列表迭代器的对象,里面的指针默认也是指向0索引的

//额外添加了一个方法:在遍历的过程中,可以添加元素

ListIterator<String> it = list.listIterator();

while(it.hasNext()){

   String str = it.next();

   if("bbb".equals(str)){

       //qqq

       it.add("qqq");

   }

}

System.out.println(list);

2.4 细节点注意:

List系列集合中的两个删除的方法

1.直接删除元素

2.通过索引进行删除

代码示例:

//List系列集合中的两个删除的方法

//1.直接删除元素

//2.通过索引进行删除

//1.创建集合并添加元素

List<Integer> list = new ArrayList<>();

list.add(1);

list.add(2);

list.add(3);

//2.删除元素

//请问:此时删除的是1这个元素,还是1索引上的元素?

//为什么?

//因为在调用方法的时候,如果方法出现了重载现象

//优先调用,实参跟形参类型一致的那个方法。

//list.remove(1);

//手动装箱,手动把基本数据类型的1,变成Integer类型

Integer i = Integer.valueOf(1);

list.remove(i);

System.out.println(list);


相关文章
|
3月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
3月前
|
安全
List集合特有功能
List集合特有功能
38 2
|
3月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
3月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
23天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
52 5
|
1月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
25 3
|
2月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
21 3
|
3月前
|
存储 安全 Java
java集合框架复习----(2)List
这篇文章是关于Java集合框架中List集合的详细复习,包括List的特点、常用方法、迭代器的使用,以及ArrayList、Vector和LinkedList三种实现类的比较和泛型在Java中的使用示例。
java集合框架复习----(2)List
|
3月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
3月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
41 5