【Java-Day19】集合3 List中常见的方法和5种遍历方式

目录

一.List集合的特有方法

[1.1 add(int index, E element):在指定位置插入元素。](#1.1 add(int index, E element):在指定位置插入元素。)

[1.2 remove(int index) 删除指定索引的元素,并返回被删除的元素。](#1.2 remove(int index) 删除指定索引的元素,并返回被删除的元素。)

[1.3 set(int index, E element) 修改指定索引的元素,并返回被修改前的元素。](#1.3 set(int index, E element) 修改指定索引的元素,并返回被修改前的元素。)

[1.4 get(int index) 获取指定索引的元素。](#1.4 get(int index) 获取指定索引的元素。)

二.List集合的遍历方式

[2.1 迭代器 Iterator](#2.1 迭代器 Iterator)

[2.2 增强 for](#2.2 增强 for)

[2.3 Lambda 表达式 forEach](#2.3 Lambda 表达式 forEach)

[2.4 普通 for 循环](#2.4 普通 for 循环)

[2.5 列表迭代器 ListIterator](#2.5 列表迭代器 ListIterator)

正向遍历:

反向遍历:

遍历时添加元素:

三.List集合五种遍历方式对比


List 是单列集合里非常常用的一类。特点是:有序、可重复、有索引。

常见实现类:ArrayList、LinkedList。

java 复制代码
List<User> users = new ArrayList<>();

一.List集合的特有方法

  • List 继承了 Collection 的所有方法,如add(E e),remove(Object o),contains(Object o),clear(),size(),isEmpty()
  • List集合因为自己有索引,所以多了一些带索引操作的方法。
方法名称 说明
voidadd(int index, E element) 在此集合中的指定位置插入指定的元素
Eremove(int index) 删除指定索引处的元素,返回被删除的元素
Eset(int index, E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素

**1.1 add(int index, E element):**在指定位置插入元素。

java 复制代码
List<String> list = new ArrayList<>();
list.add("张三");
list.add("王五");
// 在索引 1 的位置插入 李四
list.add(1, "李四");
System.out.println(list);//[张三, 李四, 王五]

**注意:**索引不能越界。

1.2 **remove(int index)**删除指定索引的元素,并返回被删除的元素。

java 复制代码
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
String removed = list.remove(1);
System.out.println("被删除的是:" + removed);//被删除的是:李四

1.3 **set(int index, E element)**修改指定索引的元素,并返回被修改前的元素。

java 复制代码
String old = list.set(1, "王五");
System.out.println("被修改前的是:" + old);//被修改前的是:李四

1.4 **get(int index)**获取指定索引的元素。

java 复制代码
System.out.println(list.get(0));

二.List集合的遍历方式

  1. 迭代器遍历(继承Collection)
  2. 列表迭代器遍历
  3. 増强for遍历(继承Collection)
  4. Lambda表达式遍历(继承Collection)
  5. 普通for循环(因为List集合存在索引)

我们准备一个集合:

java 复制代码
List<String> list = new ArrayList<>();

list.add("张三");
list.add("李四");
list.add("王五");

2.1 迭代器 Iterator

适合遍历时删除元素。

java 复制代码
Iterator<String> it = list.iterator();

while (it.hasNext()) {
    String name = it.next();
    System.out.println(name);
}

2.2 增强 for

适合只读取元素。增强 for 里不要直接修改集合结构,比如添加、删除元素。

java 复制代码
for (String name : list) {
    System.out.println(name);
}

2.3 Lambda 表达式 forEach

java 复制代码
list.forEach(name -> System.out.println(name));

2.4 普通 for 循环

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

适合需要索引的场景。

java 复制代码
for (int i = 0; i < list.size(); i++) {
    String name = list.get(i);
    System.out.println(name);
}

2.5 列表迭代器 ListIterator

ListIterator是Iterrator的子接口。

ListIterator 是 List 特有的迭代器。

它比普通 Iterator 更强,可以:

  • 从前往后遍历
  • 从后往前遍历
  • 遍历时添加元素
  • 遍历时修改元素

正向遍历:

java 复制代码
ListIterator<String> it = list.listIterator();

while (it.hasNext()) {
    String name = it.next();
    System.out.println(name);
}

反向遍历:

java 复制代码
ListIterator<String> it = list.listIterator(list.size());

while (it.hasPrevious()) {
    String name = it.previous();
    System.out.println(name);
}

遍历时添加元素:

java 复制代码
ListIterator<String> it = list.listIterator();

while (it.hasNext()) {
    String name = it.next();

    if ("李四".equals(name)) {
        it.add("赵六");
    }
}

System.out.println(list);//[张三, 李四, 赵六, 王五]

三.List集合五种遍历方式对比

相关推荐
梦想平凡6 分钟前
情怀棋牌源代码焕新记录(一):全新国风UI与原版工程梳理
java·服务器·数据库·websocket·网络协议·cocos2d
SEO_juper6 分钟前
2026年用Python分析网站访问日志:看清Googlebot和AI爬虫怎么爬你的站(附完整代码)
开发语言·前端·seo·独立站·谷歌优化
ba_pi27 分钟前
springAI2.0接入mcp读取mysql
java·agent·spring ai
宸津-代码粉碎机34 分钟前
Java面试核心:JVM三大GC垃圾回收算法原理与生产场景落地分析
java·大数据·人工智能·python·spring
Ivanqhz36 分钟前
BPE(Byte Pair Encoding) 算法
java·服务器·网络·深度学习·神经网络
愛芳芳39 分钟前
Swagger2 多环境动态配置实战指南
java·后端·maven·springboot·swagger
huaweichenai43 分钟前
spring boot实现任务异步处理(队列)
java·spring boot
MZA6661 小时前
实战:基于 XXL-JOB + 策略模式 + Nacos 配置化的 CSV 导出任务系统设计
java·spring boot·mybatis
邪修king1 小时前
Re:Linux 系统篇(二十九):动静态库Chapter2:动态库深度辨析 —— 核心本质、制作流程、双阶段查找模型与排错指南
android·java·linux·开发语言
泡海椒2 小时前
告别 iText 繁杂配置:jquick-pdf 极简 PDF 生成实战(零基础上手)
java·开发语言·pdf