List集合的遍历方式:
import java.util.ArrayList; import java.util.Iterator; public class Test { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王二"); list.add("麻子"); list.add("尼古拉斯赵四"); //遍历方式1 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //遍历方式2 for (String s : list) { System.out.println(s); } //遍历方式3(迭代器) Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } //遍历方式4(java8为Iterable接口新增了一个forEach(Consumer action))方法,该方法所需要的参数类型是Consumer, //而Consumer是一个函数式接口,因此可以使用Lambda表达式。又因为Iterable是Collection接口的父接口,因此子类可以直接 //调用 list.forEach(obj -> System.out.println(obj)); //遍历方式5(java8为Iterator新增了一个forEachRemaining(Consumer action))方法 //Iterator是被List集合的迭代器(内部类)实现的接口,迭代器重写了该方法,如下为ArrayList中对forEachRemaining方法的实现
//内部会自动遍历集合元素,并将元素作为参数传递给Consumer对象的accept方法 iterator.forEachRemaining(obj -> System.out.println(obj)); } }