Java 中 List 的 7 种遍历方式 及 性能对比

csharp 复制代码
# for i 循环
for (int i = 0; i < list.size(); i++) {
    list.get(i);
}

# 增强for循环
for (int item : list) {
}

# iterator for 循环
for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext(); ) {
    iterator.next();
}

# iterator while 循环
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
    iterator.next();
}

# list.forEach 循环
list.forEach(item -> {
});

# list.stream().forEach 循环
list.stream().forEach(item -> {
});

# list.parallelStream().forEach 循环
 list.parallelStream().forEach(item -> {
 });

性能比较

java 复制代码
每种循环各遍历10000_0000次 total cost time : 699 ms
for i 循环                                 : 63 ms, 9.01%
iterator for 循环                          : 89 ms, 12.73%
iterator while 循环                        : 86 ms, 12.30%
for Boost 循环                             : 161 ms, 23.03%
list.forEach 循环                          : 115 ms, 16.45%
list.stream().forEach 循环                 : 115 ms, 16.45%
list.parallelStream().forEach 循环         : 66 ms, 9.44%

参考

Java 中 List 的5种遍历方式

相关推荐
胚芽鞘68120 分钟前
查询依赖冲突工具maven Helper
java·数据库·maven
Charlie__ZS25 分钟前
若依框架去掉Redis
java·redis·mybatis
screenCui36 分钟前
macOS运行python程序遇libiomp5.dylib库冲突错误解决方案
开发语言·python·macos
linux kernel1 小时前
第七讲:C++中的string类
开发语言·c++
咖啡啡不加糖1 小时前
RabbitMQ 消息队列:从入门到Spring Boot实战
java·spring boot·rabbitmq
玩代码1 小时前
Java线程池原理概述
java·开发语言·线程池
NE_STOP1 小时前
SpringBoot--如何给项目添加配置属性及读取属性
java
水果里面有苹果1 小时前
20-C#构造函数--虚方法
java·前端·c#
%d%d21 小时前
python 在运行时没有加载修改后的版本
java·服务器·python
金銀銅鐵1 小时前
[Kotlin] 单例对象是如何实现的?
java·kotlin