を持つ2つのマップJavaのラムダ式ストリームと同じキーと異なるオブジェクトのリスト
public class B {
private C c;
}
は、私は同じMAP2のキーとA from map1
=持つすべてのエントリを除外するMAP1でフィルタしますとB.C in map1
=
C in map2
だから、結果は次のようになります。これはどのように
Map<A, List<B>> map1 = new HashMap<>();
を持つ2つのマップJavaのラムダ式ストリームと同じキーと異なるオブジェクトのリスト
public class B {
private C c;
}
は、私は同じMAP2のキーとA from map1
=持つすべてのエントリを除外するMAP1でフィルタしますとB.C in map1
=
C in map2
だから、結果は次のようになります。これはどのように
Map<A, List<B>> map1 = new HashMap<>();
? Collection#removeIfを使用してA
のすべてのエントリをmap1
から削除します。がB
の場合、エントリにmap2
が含まれています。代わりにStream#filterを使用して
map1.entrySet().removeIf(entry -> entry.getValue().stream().anyMatch(
b -> map2.getOrDefault(entry.getKey(), emptyList()).contains(b.c)
));
OR。
Map<A, List<B>> result = map1.entrySet().stream()
.filter(entry -> entry.getValue().stream().noneMatch(
b -> map2.getOrDefault(entry.getKey(), emptyList()).contains(b.c)
))
.collect(toMap(Entry::getKey, Entry::getValue));
ストリーム#フィルタを使用すると問題はありません。あなたの助けをありがとう – Mohamed
@モハメド全くありません。 –
これまでに何を試みましたか? – Flown
あなたは入力と予想される出力の例を挙げることができますか? –
願いの声明は問題ではありません。あなたの質問を編集して、(a)入力例と期待される出力、(b)あなた自身の試みの解決、(c)あなたが立ち往生した場所の説明など、スタックトレース間違った出力 - 間違った出力。 – RealSkeptic