Java遍历ArrayList的多种方法
在Java中,遍历ArrayList有几种常见的方法,下面我将介绍最常用的几种方式:

使用for循环(传统方式)
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
使用增强for循环(for-each)
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
for (String item : list) {
System.out.println(item);
}
使用Iterator迭代器
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}
使用Java 8 Stream API
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
list.stream().forEach(item -> System.out.println(item));
或者更简洁的写法:
list.forEach(System.out::println);
使用ListIterator(支持双向遍历)
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.println(listIterator.next());
}
// 反向遍历
while (listIterator.hasPrevious()) {
System.out.println(listIterator.previous());
}
性能比较
- for循环:适合需要索引的场景,性能较好
- for-each:代码简洁,是遍历集合的首选方式
- Iterator:适合在遍历过程中需要删除元素的情况
- Stream API:适合需要并行处理或复杂操作的场景
注意事项
- 在遍历过程中不要直接修改集合(如添加/删除元素),除非使用Iterator的remove()方法
- 对于大型集合,考虑使用for-each或Stream API以提高代码可读性
- 如果需要索引信息,可以使用传统的for循环或ListIterator
选择哪种方法取决于你的具体需求和代码风格偏好。

