list2
のオブジェクトのいずれかがlist1
に存在するかどうかを比較したいと考えています。Stream-anyMatchを使用した2つのコレクションの比較
私は両方のリストを繰り返して、.contains()
を使ってすべての要素を比較することができましたが、より効率的な方法がないかどうか疑問に思っています。私はthis発見し、私は提案された方法を実装しようとしています:私はこれを行うと、私はtrue
を期待しても、私は常にfalse
を得る
List<Item> list1;
List<Item> list2;
boolean anyMatch = list1.stream().anyMatch(x -> x.equals(list2.stream()));
System.out.println(anyMatch);
を。どうして?
湯気が足場の多くを持っていることを唯一の5文字短いです怠惰な評価のために状態を維持する。 –
list1の要素とlist2のストリームを比較しています。彼らは同じ種類のものでもありません。ストリームでは何も速くしません。 list1.equals(list2)を使うことができますが、順序は重要です。注文が問題ではなく、アイテムが一意である場合は、リストの代わりにセットを使用します。 –
@屯木リストになっているはずです。 list2のオブジェクトがlist1に存在するかどうかを比較したいと思います。 明確になったはずです。 – k88