-
实现了 RandomAccess 接口的list,优先选择普通 for 循环 ,其次 foreach。
-
未实现 RandomAccess接口的list,优先选择iterator遍历(foreach遍历底层也是通过iterator实现的),大size的数据,千万不要使用普通for循环。
说明:RandomAccess只是一个标识接口,里面没有具体需要实现的方法;实现RandomAccess标识该实现类可以实现快速随机访问,比如ArrayList;而LinkedList不能快速岁访问,所以没有实现RandomAccess。
补充:iterater结合while遍历list示例
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
参考:
https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/collection/Java%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6%E5%B8%B8%E8%A7%81%E9%9D%A2%E8%AF%95%E9%A2%98.md