java动态集过滤器
您好,我是java函数式编程新手。我试图过滤一个贴图,如果元素在集合中,跳过它;否则处理它并将其放入集合中。 但是我发现这个集合看起来是静态的(没有被终端操作更新)java动态集过滤器,java,filter,functional-programming,Java,Filter,Functional Programming,您好,我是java函数式编程新手。我试图过滤一个贴图,如果元素在集合中,跳过它;否则处理它并将其放入集合中。 但是我发现这个集合看起来是静态的(没有被终端操作更新) 试试这个: HOSTING.entrySet() .stream() .filter(map -> s.add(map.getValue())) .collect(Collectors.toMap(p -> p.getKey(), p -&g
试试这个:
HOSTING.entrySet()
.stream()
.filter(map -> s.add(map.getValue()))
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue())).forEach((k, v) -> {
System.out.println("show:" + v);
});
另一种方法是可以将地图值转换为列表,然后可以在列表上轻松使用Distinct()
List<String> result = HOSTING.values().stream().collect(Collectors.toList()); //convert map to list
result.stream().distinct().collect(Collectors.toList()); // filtering the list
System.out.println(result);
List result=HOSTING.values().stream().collect(Collectors.toList())//将地图转换为列表
result.stream().distinct().collect(Collectors.toList());//筛选列表
系统输出打印项次(结果);
s
是一个空集合,您对此有何期望?我将处理过的元素放入集合中。添加(v);谢谢你的回复,我仍然需要println方法中的映射。
HOSTING.entrySet()
.stream()
.filter(map -> s.add(map.getValue()))
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue())).forEach((k, v) -> {
System.out.println("show:" + v);
});
List<String> result = HOSTING.values().stream().collect(Collectors.toList()); //convert map to list
result.stream().distinct().collect(Collectors.toList()); // filtering the list
System.out.println(result);