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种遍历方式

相关推荐
多则惑少则明几秒前
AI大模型实用(五)Java快速实现智能体整理(LangChain4j构建Java AI智能体)
java·ai大模型
uup4 分钟前
字符串比较的经典坑:== vs equals
java
悟能不能悟8 分钟前
Java 中将 List 中对象的某一列转换为 Set
java·开发语言·list
vortex513 分钟前
Bash Shell 的展开与补全机制
开发语言·bash
利刃大大18 分钟前
【SpringBoot】SpringMVC && 请求注解详解 && 响应注解详解 && Lombok
java·spring boot·后端
BBB努力学习程序设计21 分钟前
Java注解(Annotation)深度解析:从元编程到框架设计
java
010米粉01024 分钟前
Qt Cmake之路(一):Cmake变量语法
开发语言·qt·cmake
2501_9167665427 分钟前
【SpringMVC】实现文件上传
java·spring
Jack_abu27 分钟前
详解java中的BlockingQueue阻塞队列
java·juc·阻塞队列·blockingqueue
她说..27 分钟前
Spring AOP场景4——事务管理(源码分析)
java·数据库·spring boot·后端·sql·spring·springboot