以下是我的代码:
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