は、だからここに私のコードです: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