Java で複数のリストの共通部分を取得するのに問題があります。私がやっていることはこれです:私は(言ってみましょう)整数の3つのリストを取得します:
リスト 1: [2, 2, 2, 2, 5, 5]
リスト 2: [2, 2, 103]
リスト 3: [2, 431]
残りの各リストを使用して、retainAll を最初のリストに適用しています。
list1.retainAll(list2);
list1.retainAll(list3);
そして、私はこの結果を得ています:
list1: [2, 2, 2, 2]
しかし、私はこれを手に入れることを期待しています:
リスト1: [2]
...すべてのリストが共有する唯一の要素は4 つの2ではなく、 1 つの 2 であるためです。
これはおそらく、retainAll 関数の予期される動作であることはわかっていますが、上記の結果を取得する必要があります。
何か助けはありますか?
編集: HashSetを使用して重複を禁止しても、うまくいきません。この場合、例えば:
リスト 1: [2, 2, 2, 2, 5, 5]
リスト 2: [2, 2, 103]
リスト 3: [2, 2, 2, 431]
次の結果を取得する必要があります。
list 1: [2, 2] (すべてのリストには少なくとも 2 のペアがあるため)
それ以外の
リスト 1: [2]