java 遍历 List 的六种方式
注: 最后三种 Java8 及以上 才支持;且最后一种不会保持原有顺序
导包
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
代码
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("11");
list.add("22");
list.add("33");
// 普通for i
System.out.println("============ 第一种 ===========");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// 迭代器 iterator
System.out.println("============ 第二种 ===========");
for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
System.out.println(iterator.next());
}
// 迭代器 iterator
System.out.println("=======================");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// forEach
System.out.println("============ 第三种 ===========");
for (String item : list) {
System.out.println(item);
}
// java8 Lambda表达式
System.out.println("============ 第四种 ===========");
list.forEach( l -> {
System.out.println(l);
});
// java8 list.stream().forEach
System.out.println("============ 第五种 ===========");
list.stream().forEach( l -> {
System.out.println(l);
});
// java8 parallelStream().forEach()
// 不会保持原来的顺序
System.out.println("============ 第六种 ===========");
list.parallelStream().forEach( l -> {
System.out.println(l);
});
}
执行结果
============ 第一种 ===========
11
22
33
============ 第二种 ===========
11
22
33
=======================
11
22
33
============ 第三种 ===========
11
22
33
============ 第四种 ===========
11
22
33
============ 第五种 ===========
11
22
33
============ 第六种 ===========
22
33
11