遍历一个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);
  });
}

出处:https://www.cnblogs.com/yiwangzhibujian/p/6919435.html

 


在数据量不大的时候(List中元素不多的时候)几种方式的性能差别不大,大的话后面引入的几种方式会更优秀一点。

理论上增强for循环底层由Iterator实现,应该性能差不太多?