Java 集合的遍历与排序
遍历和排序是集 合操作中最常用的功能。理解不同的遍历方式和排序方法是高效处理集合数据的基础。本章将详细介绍 Java 中集合的遍历与排序。
for-each 循环与迭代器
for-each 循环
增强的 for 循环是最常用的遍历方式。
List<String> list = Arrays.asList("apple", "banana", "orange");
// for-each 循环
for (String item : list) {
System.out.println(item);
}
适用场景:
- 只需要读取元素
- 不需要修改集合
- 代码简洁
迭代器(Iterator)
**Iterator**提供了更灵活的遍历方式。
List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "orange"));
// 使用迭代器
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}
迭代器的优势:
- 可以在遍历时 删除元素
- 支持并发修改检测
- 更灵活的控制
// 使用迭代器删除元素
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (item.equals("banana")) {
iterator.remove(); // 安全删除
}
}
ListIterator
**ListIterator**是 Iterator 的子接口,支持双向遍历(仅 List)。
List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "orange"));
// 正向遍历
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
String item = listIterator.next();
System.out.println(item);
}
// 反向遍历
while (listIterator.hasPrevious()) {
String item = listIterator.previous();
System.out.println(item);
}
// 在遍历时修改
while (listIterator.hasNext()) {
String item = listIterator.next();
if (item.equals("banana")) {
listIterator.set("grape"); // 替换元素
listIterator.add("mango"); // 添加元素
}
}