java.util.Collection の古典的なセット操作 質問する

java.util.Collection の古典的なセット操作 質問する

java.util.Collection クラスには、従来のセット操作用の組み込み機能はありますか? 私の具体的な実装は ArrayList 用ですが、これは Collection のすべてのサブクラスに適用されるべきもののように思えます。次のようなものを探しています:

ArrayList<Integer> setA ...
ArrayList<Integer> setB ...
ArrayList<Integer> setAintersectionB = setA.intersection(setB);
ArrayList<Integer> setAminusB = setA.subtract(setB);

少し検索してみたところ、自家製のソリューションしか見つかりませんでした。また、「セット」の概念と「コレクション」の概念を混同している可能性があり、それぞれ重複を許可しないか、許可しないかで判断していることに気づきました。おそらく、これは実際にはセット インターフェイスの機能だけなのでしょうか?

組み込み機能を誰も知らない場合、これを標準的な Java セット演算コードのリポジトリとして使用できるでしょうか? この車輪は何度も再発明されてきたと思います。

ベストアンサー1

Collection.retainAll積集合は、減算はCollection.removeAll、和集合は で行いますCollection.addAll。いずれの場合も、 はSetセットのように動作し、 はListリストのように動作します。

変更可能なオブジェクトであるため、その場で動作します。元の変更可能なオブジェクトを変更せずに保持したい場合は、明示的にコピーする必要があります。

おすすめ記事