因此,這裏是我的代碼:在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