List<Integer> list = new ArrayList<>();
int n = 10000_0000;
for (int i = 0; i < n; i++) {
list.add(i);
}
遍歷方式
# for i 循環(huán)
for (int i = 0; i < list.size(); i++) {
list.get(i);
}
# 增強(qiáng)for循環(huán)
for (int item : list) {
}
# iterator for 循環(huán)
for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext(); ) {
iterator.next();
}
# iterator while 循環(huán)
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
iterator.next();
}
# list.forEach 循環(huán)
list.forEach(item -> {
});
# list.stream().forEach 循環(huán)
list.stream().forEach(item -> {
});
# list.parallelStream().forEach 循環(huán)
list.parallelStream().forEach(item -> {
});
10000_0000次循環(huán)性能比較
循環(huán)類型 | 第1輪 | 第2輪 | 第3輪 | 第4輪 | 第5輪 |
---|---|---|---|---|---|
for i 循環(huán) | : 75 ms, 6.08% | : 53 ms, 8.62% | : 68 ms, 10.64% | : 54 ms, 8.39% | : 53 ms, 6.79% |
增強(qiáng)for循環(huán) | : 146 ms, 11.83% | : 149 ms, 24.23% | : 164 ms, 25.67% | : 185 ms, 28.73% | : 163 ms, 20.90% |
iterator for 循環(huán) | : 56 ms, 4.54% | : 54 ms, 8.78% | : 58 ms, 9.08% | : 56 ms, 8.70% | : 77 ms, 9.87% |
iterator while 循環(huán) | : 55 ms, 4.46% | : 56 ms, 9.11% | : 56 ms, 8.76% | : 56 ms, 8.70% | : 55 ms, 7.05% |
list.forEach 循環(huán) | : 555 ms, 44.98% | : 115 ms, 18.70% | : 111 ms, 17.37% | : 109 ms, 16.93% | : 130 ms, 16.67% |
list.stream().forEach 循環(huán) | : 143 ms, 11.59% | : 115 ms, 18.70% | : 108 ms, 16.90% | : 107 ms, 16.61% | : 112 ms, 14.36% |
list.parallelStream().forEach 循環(huán) | : 203 ms, 16.45% | : 71 ms, 11.54% | : 71 ms, 11.11% | : 73 ms, 11.34% | : 187 ms, 23.97% |
參考
Java 中 List 的5種遍歷方式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-695833.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-695833.html
到了這里,關(guān)于Java 中 List 的 7 種遍歷方式 及 性能對(duì)比的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!