8种有效方式迭代Java Map中的每个条目

本文展示了Java中遍历Map的多种方式,包括使用iterator、foreach循环以及Java 8的Stream API,详细比较了它们的实现和效率。通过实例代码,演示了如何获取Map中键值对的总和,提供了并行流的使用示例。
摘要由CSDN通过智能技术生成

1 iterator + Map.Entry

long i = 0;
Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry<Integer, Integer> pair = it.next();
    i += pair.getKey() + pair.getValue();
}
System.out.println(i);

2 foreach + Map.Entry

long i = 0;
for (Map.Entry<Integer, Integer> pair : map.entrySet()) {
    i += pair.getKey() + pair.getValue();
}
System.out.println(i);

3 foreach Java8

final long[] i = {0};
map.forEach((k, v) -> i[0] += k + v);
System.out.println(i[0]);

4 keySet + foreach

long i = 0;
for (Integer key : map.keySet()) {
    i += key + map.get(key);
}
System.out.println(i);

5 keySet + iterator

long i = 0;
Iterator<Integer> it = map.keySet().iterator();
while (it.hasNext()) {
    Integer key = it.next();
    i += key + map.get(key);
}
System.out.println(i);

6 for + Map.Entry

long i = 0;
for (Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator(); entries.hasNext(); ) {
    Map.Entry<Integer, Integer> entry = entries.next();
    i += entry.getKey() + entry.getValue();
}
System.out.println(i);

7 Java8 Stream Api

System.out.println(map.entrySet().stream().mapToLong(e -> e.getKey() + e.getValue()).sum());

8 Java8 Stream Api parallel

System.out.println(map.entrySet().parallelStream().mapToLong(e -> e.getKey() + e.getValue()).sum());
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java 通过迭代器输出 list 每个元素的方法如下: 1. 创建一个迭代器: ``` List<String> list = new ArrayList<>(); // 向 list 添加元素 Iterator<String> iterator = list.iterator(); ``` 2. 使用迭代器的 `hasNext()` 和 `next()` 方法遍历 list 的元素: ``` while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } ``` 或者使用 Java 8 的 forEach 方法遍历 list 的元素: ``` list.forEach(element -> System.out.println(element)); ``` 注意: 在使用迭代器遍历 list 的元素时, 不要在遍历过程修改 list 的内容, 否则会抛出 `ConcurrentModificationException` 异常. ### 回答2: Java提供了迭代器(Iterator)接口,可以用于遍历List每个元素。使用迭代器的步骤如下: 1. 首先,我们要获取List的迭代器。可以通过调用List的iterator()方法来实现,该方法返回一个Iterator对象。 2. 然后,我们可以使用while循环来迭代访问List每个元素。通过调用Iterator的hasNext()方法判断是否还有下一个元素,如果有就执行循环体内的代码,否则循环结束。 3. 在循环体内,我们可以使用Iterator的next()方法来获取下一个元素,并对其进行操作。 下面是一个示例代码: ``` import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("元素1"); list.add("元素2"); list.add("元素3"); // 获取迭代器 Iterator<String> iterator = list.iterator(); // 迭代输出每个元素 while(iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } } } ``` 在上面的代码,我们创建了一个List对象,并添加了三个元素。然后获取该List的迭代器,并通过while循环遍历输出了每个元素。输出结果将会是: ``` 元素1 元素2 元素3 ``` 通过迭代器,我们可以方便地遍历输出List每个元素,而不需要使用传统的for循环或foreach循环。这样可以增加代码的可读性和灵活性。 ### 回答3: Java可以通过迭代器来输出List每个元素。首先,我们需要创建一个List对象,并向其添加元素。然后,使用List的iterator()方法获取到该List的迭代器对象。可以使用while循环来遍历迭代器,并使用迭代器的next()方法获取每个元素,然后将其输出到控制台。接下来,我们需要使用迭代器对象的hasNext()方法检查是否还有下一个元素,如果有,则继续循环,否则退出循环。最后,需要记得在循环结束后关闭迭代器。 下面是一个示例代码: ``` import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("元素1"); list.add("元素2"); list.add("元素3"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } iterator.remove(); // 可以使用迭代器的remove()方法删除元素 iterator = null; // 关闭迭代器 } } ``` 以上代码会输出List每个元素,并可选择使用迭代器的remove()方法来删除元素。最后,记得将迭代器对象置为null,以关闭迭代器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值