一、for
List<Integer> integers = 随便定义一个集合;
for(int i=0;i<integers.size();i++){
int j=integers.get(i);
}
二、forEach
for (Integer i : integers) {
int j = i;
}
三、迭代器
Iterator<Integer> iterator = integers.iterator();
while(iterator.hasNext()){
int j=iterator.next();
}
For Each的效率差,用迭代器的效率也没有很好。for循环最优,因为ArrayList通过数组来实现,数组通过索引来定位的时间复杂度是O(1),1次就能定位到,所以效率非常高;
但是,我最想推荐的方式是:
四、用流的方式
integers.stream().forEach(integer -> {
int j=integer;
});
stream().forEach用的多线程方式,其调用线程池的时候必然会耗费更多的时间。但如果你在循环内要处理的事情很多,或者要循环调用远程接口/数据库的时候,无疑极大的提升了效率
所以,我觉得,它使代码简洁,性能也不差,最主要是代码好看····哈哈
网友评论