遍历一个List有如下几种方法
方式1:
public static void test1(List<String> list) { for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } }
方式2:
public static void test2(List<String> list) { for (int i = 0,lengh=list.size(); i < lengh; i++) { System.out.println(list.get(i)); } }
方式3 Iterator遍历:
public static void test3(List<String> list) { Iterator<String> iterator = list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } }
方式4 增强for循环 java5引入:
public static void test4(List<String> list) { for(String str:list){ System.out.println(str); } }
方式5 forEach java8引入:
public static void test5(List<String> list) { //list.forEach(System.out::println);和下面的写法等价 list.forEach(str->{ System.out.println(str); }); }
方式6 同样java8引入:
public static void test6(List<String> list) { list.iterator().forEachRemaining(str->{ System.out.println(str); }); }
在数据量不大的时候(List中元素不多的时候)几种方式的性能差别不大,大的话后面引入的几种方式会更优秀一点。
理论上增强for循环底层由Iterator实现,应该性能差不太多?