Java List一些常用方法完全攻略

 更新时间:2026年04月20日 10:40:31   作者:爱喝一杯白开水  
List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以执行增删改查以及变量等操作,这篇文章主要介绍了Java List一些常用方法的相关资料,需要的朋友可以参考下

给 Java 新手的超全 List 使用指南

前言

学 Java 的人,几乎每天都要和 `List` 打交道。

它是最常用的数据结构之一,面试会问、工作会用、代码里到处都有它的身影。

别担心,这篇博客不会堆砌概念,而是用**大白话 + 大量代码**,带你把 List 真正搞懂。

什么是 List?

`List` 是一个**有序的集合**,你可以把它想象成一个**动态数组**。

- ✅ 可以放重复的元素

- ✅ 有索引(从 0 开始)

- ✅ 长度可以动态增长

在 Java 中,最常用的实现类是 `ArrayList`。

// 创建一个 List
List<String> list = new ArrayList<>();

注意啦:`List` 是接口,`ArrayList` 是实现类。一般都用这种写法。

1. 添加元素

add() — 往里加

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

fruits.add("苹果");      // 加到末尾
fruits.add("香蕉");
fruits.add("橙子");

System.out.println(fruits);  // [苹果, 香蕉, 橙子]

add(index, element) — 插队

fruits.add(1, "葡萄");  // 插入到索引 1 的位置
System.out.println(fruits);  // [苹果, 葡萄, 香蕉, 橙子]

addAll() — 批量添加

List<String> moreFruits = Arrays.asList("西瓜", "哈密瓜");
fruits.addAll(moreFruits);
System.out.println(fruits);  // [苹果, 葡萄, 香蕉, 橙子, 西瓜, 哈密瓜]

2. 获取元素

get(index) — 取出来

String first = fruits.get(0);    // 第一个
String second = fruits.get(1);  // 第二个
System.out.println(first);   // 苹果
System.out.println(second);  // 葡萄

⚠️ **注意**:索引从 0 开始,别越界了!否则会抛 `IndexOutOfBoundsException`。

3. 修改元素

set(index, element) — 替换

fruits.set(0, "草莓");  // 把第一个改成草莓
System.out.println(fruits);  // [草莓, 葡萄, 香蕉, 橙子, 西瓜, 哈密瓜]

4. 删除元素

remove(index) — 按索引删

fruits.remove(0);  // 删除第一个
System.out.println(fruits);  // [葡萄, 香蕉, 橙子, 西瓜, 哈密瓜]

remove(element) — 按内容删

fruits.remove("香蕉");  // 删除"香蕉"这个元素
System.out.println(fruits);  // [葡萄, 橙子, 西瓜, 哈密瓜]

clear() — 清空全部

fruits.clear();  // 全部删掉
System.out.println(fruits);  // []

5. 查找元素

contains() — 查是否存在

boolean hasOrange = fruits.contains("橙子");
System.out.println(hasOrange);  // true

indexOf() — 查位置

int position = fruits.indexOf("橙子");
System.out.println(position);  // 1(找不到返回 -1)

isEmpty() — 判空

boolean empty = fruits.isEmpty();
System.out.println(empty);  // false(因为里面有东西)

6. 遍历 List

这是最常用的操作之一,必须掌握!

普通 for 循环

for (int i = 0; i < fruits.size(); i++) {
    System.out.println(fruits.get(i));
}

增强 for 循环(推荐新手用)

for (String fruit : fruits) {
    System.out.println(fruit);
}

Iterator(面试常问!)

Iterator<String> it = fruits.iterator();
while (it.hasNext()) {
    String fruit = it.next();
    System.out.println(fruit);
}

forEach(Java 8+)

fruits.forEach(fruit -> System.out.println(fruit));

方法引用(更简洁)

fruits.forEach(System.out::println);

7. 排序

Collections.sort() — 简单排序

List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
numbers.add(1);
Collections.sort(numbers);
System.out.println(numbers);  // [1, 2, 5, 8]

自定义排序(Comparator)

List<String> names = new ArrayList<>();
names.add("Tom");
names.add("Alice");
names.add("Bob");
names.add("Diana");
// 按长度排序
names.sort(Comparator.comparingInt(String::length));
System.out.println(names);  // [Tom, Bob, Alice, Diana]

8. 转换成数组

toArray()

String[] array = fruits.toArray(new String[0]);

for (String fruit : array) {
    System.out.println(fruit);
}

9. 数组转 List

Arrays.asList()

String[] colors = {"红", "蓝", "绿"};
List<String> colorList = Arrays.asList(colors);
System.out.println(colorList);  // [红, 蓝, 绿]

⚠️ 注意:这个方法返回的 List **不能增删**(是固定长度的)。如果需要可变的:

List<String> mutableList = new ArrayList<>(Arrays.asList(colors));

10. 常用技巧合集

判断两个 List 是否相等

List<String> a = Arrays.asList("1", "2", "3");
List<String> b = Arrays.asList("1", "2", "3");
System.out.println(a.equals(b));  // true

复制 List

List<String> original = new ArrayList<>(Arrays.asList("a", "b", "c"));
List<String> copy = new ArrayList<>(original);

替换所有元素(Java 8+)

List<String> words = new ArrayList<>(Arrays.asList("hello", "world"));
words.replaceAll(s -> s.toUpperCase());
System.out.println(words);  // [HELLO, WORLD]

过滤元素(Java 8+ Stream)

List<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6));

List<Integer> even = nums.stream()
    .filter(n -> n % 2 == 0)
    .collect(Collectors.toList());

System.out.println(even);  // [2, 4, 6]

总结

| 操作 | 常用方法 |
|------|----------|
| 添加 | `add()`, `addAll()` |
| 获取 | `get()` |
| 修改 | `set()` |
| 删除 | `remove()`, `clear()` |
| 查找 | `contains()`, `indexOf()` |
| 遍历 | `for`, `forEach`, `Iterator` |
| 排序 | `Collections.sort()`, `list.sort()` |

`List` 是 Java 开发中最基础也最重要的集合类,**一定要熟练掌握**。

建议:把上面的代码自己跑一遍,感受一下各个方法的效果。动手比看十遍都管用!

到此这篇关于Java List一些常用方法的文章就介绍到这了,更多相关Java List常用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • RabbitMQ消费者限流实现消息处理优化

    RabbitMQ消费者限流实现消息处理优化

    这篇文章主要介绍了RabbitMQ消费者限流实现消息处理优化,消费者限流是用于消费者每次获取消息时限制条数,注意前提是手动确认模式,并且在手动确认后才能获取到消息,感兴趣想要详细了解可以参考下文
    2023-05-05
  • Java中的Socket编程使用方法详解

    Java中的Socket编程使用方法详解

    这篇文章主要介绍了Java中的Socket编程使用的相关资料,文中详细讲解了Socket的基本概念、Java中Socket的使用方法以及客户端与服务器之间的简单通信示例,需要的朋友可以参考下
    2024-12-12
  • SpringCloud集成Sleuth和Zipkin的思路讲解

    SpringCloud集成Sleuth和Zipkin的思路讲解

    Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现,它致力于收集服务的定时数据,以及解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现,这篇文章主要介绍了SpringCloud集成Sleuth和Zipkin,需要的朋友可以参考下
    2022-11-11
  • idea文件被锁无法更改问题

    idea文件被锁无法更改问题

    这篇文章主要介绍了idea文件被锁无法更改问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • springcloud微服务基于redis集群的单点登录实现解析

    springcloud微服务基于redis集群的单点登录实现解析

    这篇文章主要介绍了springcloud微服务基于redis集群的单点登录实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • SpringMVC注解@RequestParam方法原理解析

    SpringMVC注解@RequestParam方法原理解析

    这篇文章主要介绍了SpringMVC注解@RequestParam方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Springboot几种任务的整合方法

    Springboot几种任务的整合方法

    这篇文章主要介绍了Springboot几种任务的整合方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式

    阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式

    本文主要介绍了阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Spring定时任务中数据未持久化的深度排查和解决指南

    Spring定时任务中数据未持久化的深度排查和解决指南

    在Spring Boot应用中,开发人员常通过@Scheduled定时任务实现日志缓存批量写入数据库的功能,然而,即使代码执行无报错、事务已提交,数据库表却始终未保存任何数据,所以本文给大家介绍了Spring定时任务中数据未持久化的深度排查指南,需要的朋友可以参考下
    2025-10-10
  • Java读取PDF中的表格的方法示例

    Java读取PDF中的表格的方法示例

    本文主要介绍了Java读取PDF中的表格的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论