当前位置: 代码网 > it编程>编程语言>Java > Java List一些常用方法完全攻略

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

2026年04月20日 Java 我要评论
给 java 新手的超全 list 使用指南前言学 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常用方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com