Java中map常见操作集合
Java中遍历Map的几种常见方式
一. Java中遍历Map的几种常见方式
在Java中,可以使用不同的方式来遍历Map,以下是常见的几种方式:
1. 使用迭代器遍历Map
使用Map.Entry对象的迭代器来遍历Map中的键值对,示例代码如下:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ": " + value);
}
2. 使用foreach循环遍历Map
使用foreach循环遍历Map中的键值对,示例代码如下:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ": " + value);
}
3. 使用Lambda表达式和Stream API遍历Map
使用Lambda表达式和Stream API遍历Map中的键值对,示例代码如下:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.entrySet().stream().forEach(entry -> {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ": " + value);
});
4. 使用Java 8中的forEach()方法遍历Map
使用Java 8中的forEach()方法遍历Map中的键值对,示例代码如下:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.forEach((key, value) -> System.out.println(key + ": " + value));
需要注意的是,以上方式都是遍历Map中的键值对,如果只需要遍历Map中的键或值,也可以使用keySet()或values()方法来获取相应的集合,然后使用迭代器或Stream API遍历它们。
二. 计算Java中所有Map值的总和
可以使用 values() 方法。现在任务简化为汇总集合中的所有值。这可以在 Java 中以多种方式完成:
1. 使用 Java 8
在 Java 8 或更高版本中,可以使用 Streams 轻松完成求和运算,而无需任何循环。
import java.util.HashMap;
import java.util.Map;
public class Main{
public static void main(String[] args){
Map<String, Integer> persons = new HashMap<>();
persons.put("John", 25);
persons.put("Neil", 15);
persons.put("Rosy", 18);
int sum = persons.values().stream().mapToInt(Integer::intValue).sum();
System.out.println(sum); // 58
}
}
还可以使用 reduce() 方法。
import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<String, Integer> persons = new HashMap<>();
persons.put("John", 25);
persons.put("Neil", 15);
persons.put("Rosy", 18);
int sum = persons.values().stream().reduce(0, Integer::sum);
System.out.println(sum); // 58
}
}
2. 使用for循环
在 Java 8 之前,我们可以使用简单的 for 循环替换 Stream API 链:
import java.util.HashMap;
import java.util.Map;
public class Main{
public static void main(String[] args){
Map<String, Integer> persons = new HashMap<>();
persons.put("John", 25);
persons.put("Neil", 15);
persons.put("Rosy", 18);
int sum = 0;
for (int value: persons.values()) {
sum += value;
}
System.out.println(sum); // 58
}
}
这就是计算 a 中所有值的总和 Map<?, Integer> 在Java。
更新:2023-08-19
评论区