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
リストのように動作します。
変更可能なオブジェクトであるため、その場で動作します。元の変更可能なオブジェクトを変更せずに保持したい場合は、明示的にコピーする必要があります。