因此,这里是我的代码:在Java中使用Collectors.toMap时,如何跳过将条目添加到新地图?
HashMap<String, List<Foo.Builder>> strFooMap = new HashMap<>();
// add stuff to strFooMap and do other things
return new HashMap<>(strFooMap.entrySet()
.stream()
.collect(Collectors.toMap(Entry::getKey,
entry -> entry
.getValue()
.stream()
.filter(builder -> {
// do some conditional stuff to filter
})
.map(builder -> {
return builder.build();
})
.collect(Collectors.toList())
)
)
);
所以有的时候,做filter
后,在我的List<Foo.Builder>
将被过滤掉所有的项目。然后在我的最后HashMap
,我有这样的条目:{"someStr" -> []}
。我想删除值为空列表的键值对。我会如何去做这件事?在.stream().collect(Collectors.toMap(...))
的代码中可以这样做吗?谢谢!
请包含更多信息,例如'Foo.Builder'方法和返回类型。另外,你为什么要将返回的地图复制到另一个'HashMap'? – shmosel
你会在收集之前过滤掉它? – Tunaki