Java将一个map筛选几个key组成新的map
时间: 2023-08-01 20:10:31 浏览: 75
可以使用Java8中的Stream API和filter()方法来筛选一个Map中的几个key,组成新的Map。以下是示例代码:
```java
Map<String, Integer> originalMap = new HashMap<>();
originalMap.put("A", 1);
originalMap.put("B", 2);
originalMap.put("C", 3);
originalMap.put("D", 4);
originalMap.put("E", 5);
Set<String> keysToKeep = new HashSet<>(Arrays.asList("B", "D"));
Map<String, Integer> newMap = originalMap.entrySet().stream()
.filter(entry -> keysToKeep.contains(entry.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println("Original Map: " + originalMap);
System.out.println("New Map: " + newMap);
```
输出结果:
```
Original Map: {A=1, B=2, C=3, D=4, E=5}
New Map: {B=2, D=4}
```
在上面的示例代码中,我们首先创建了一个原始的Map,然后使用HashSet创建了一个包含要筛选的key的集合。接着,我们使用entrySet()方法将Map转换成一个Entry的Stream,并使用filter()方法筛选出包含要保留的key的Entry。最后,我们使用collect()方法将Stream转换为新的Map,并打印了原始Map和新Map的内容,可以看到新Map中只保留了指定的key。