Java 中 Map 的 16 种遍历方式 及 性能对比

拼搏现实的明天。 2024-03-08 05:10 191阅读 0赞
  1. for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
  2. }
  3. Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
  4. while (entries.hasNext()) {
  5. entries.next();
  6. }
  7. map.forEach((key, value) -> {
  8. });
  9. map.entrySet().stream().forEach((entry) -> {
  10. });
  11. map.entrySet().parallelStream().forEach((entry) -> {
  12. });
  13. for (Integer key : map.keySet()) {
  14. }
  15. Iterator<Integer> iteratorKeySet = map.keySet().iterator();
  16. while (iteratorKeySet.hasNext()) {
  17. iteratorKeySet.next();
  18. }
  19. map.keySet().forEach((key) -> {
  20. });
  21. map.keySet().stream().forEach((entry) -> {
  22. });
  23. map.keySet().parallelStream().forEach((entry) -> {
  24. });
  25. for (Integer value : map.values()) {
  26. }
  27. Iterator<Integer> iteratorValues = map.values().iterator();
  28. while (iteratorValues.hasNext()) {
  29. iteratorValues.next();
  30. }
  31. map.values().forEach((values) -> {
  32. });
  33. map.values().stream().forEach((entry) -> {
  34. });
  35. map.values().parallelStream().forEach((value) -> {
  36. });
  37. for (Integer key : map.keySet()) {
  38. map.get(key);
  39. }

性能比较

  1. 每种循环各遍历50000000 total cost time = 3996 ms
  2. map.entrySet() : 348 ms, 8.71%
  3. map.entrySet().iterator() : 356 ms, 8.91%
  4. map.forEach : 235 ms, 5.88%
  5. map.entrySet().stream().forEach : 227 ms, 5.68%
  6. map.entrySet().parallelStream().forEach : 116 ms, 2.90%
  7. map.keySet() : 294 ms, 7.36%
  8. map.keySet().iterator() : 301 ms, 7.53%
  9. map.keySet().forEach : 226 ms, 5.66%
  10. map.keySet().stream().forEach : 227 ms, 5.68%
  11. map.keySet().parallelStream().forEach : 126 ms, 3.15%
  12. map.values() : 301 ms, 7.53%
  13. map.values().iterator() : 303 ms, 7.58%
  14. map.values().forEach : 219 ms, 5.48%
  15. map.values().stream().forEach : 228 ms, 5.71%
  16. map.values().parallelStream().forEach : 122 ms, 3.05%
  17. map.keySet() map.get(key) : 358 ms, 8.96%

发表评论

表情:
评论列表 (有 0 条评论,191人围观)

还没有评论,来说两句吧...

相关阅读