java stream流,两个map,取出相同的key
时间: 2023-07-08 22:38:30 浏览: 79
可以使用Java 8中的Stream API来实现。我们可以通过Stream的filter方法过滤出两个Map中相同的key,然后将这些key收集到一个新的集合中。
示例代码如下:
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
map1.put("c", 3);
Map<String, Integer> map2 = new HashMap<>();
map2.put("b", 4);
map2.put("c", 5);
map2.put("d", 6);
Set<String> commonKeys = map1.keySet().stream()
.filter(map2::containsKey)
.collect(Collectors.toSet());
System.out.println(commonKeys); // 输出 [b, c]
在上面的示例代码中,我们首先使用Stream的filter方法过滤出map1中与map2中相同的key,然后使用Stream的collect方法将这些key收集到一个Set中。最后,我们将这个Set输出到控制台上。
相关问题
java stream 取出班级id作为key, 班级名称作为value 转换成Map
在Java Stream API中,如果你想要从一个List<Class>
列表中取出班级ID作为键,班级名称作为值,生成一个Map,可以按照以下步骤操作:
首先,假设你已经有了一个Class
类,包含了id
和name
两个字段:
class Class {
private int id;
private String name;
// 构造函数和其他方法...
}
然后,你可以使用以下代码:
List<Class> classes = ...; // 假设这是你的班级列表
Map<Integer, String> classMap = classes.stream()
.collect(Collectors.toMap(Class::getId, Class::getName));
Collectors.toMap()
方法接受两个函数作为参数:
- 第一个函数(
Function<Class, Integer>
)用于获取每个元素的关键字(在这里是id
),即Class::getId
。 - 第二个函数(
Function<Class, String>
)用于获取每个元素的值(在这里是name
),即Class::getName
。
这样就得到了一个Map,其键是班级ID,值是班级名称。
java 如何用stream流处理把list转换成map
在Java中,可以使用Stream API将List转换为Map。假设你有一个List
相关推荐
















