Java ArrayList retainAll() メソッド
retainAll() メソッドは、arraylist 内の要素のうち、指定されたコレクションにも存在する要素を保持します。つまり、指定されたコレクションに存在しない要素を削除します。
retainAll() メソッドの構文は次のとおりです:
arraylist.retainAll(Collection c);
注:arraylist は ArrayList クラスのオブジェクトです。
パラメータの説明:
- collection - コレクションパラメータ
戻り値
arraylist から要素が削除された場合は true を返します。
arraylist 内に存在する要素が、指定された collection のクラス内の要素と互換性がない場合は、ClassCastException 例外がスローされます。
arraylist に null 要素が含まれており、指定された collection が null 要素を許可しない場合は、NullPointerException がスローされます。
例
指定されたコレクション内の要素を保持します:
例
class Main {
public static void main(String[] args){
// 動的配列を作成する
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("サンプル");
sites.add("Taobao");
System.out.println("ArrayList 1: " + sites);
// 別の動的配列を作成する
ArrayList<String> sites2 = new ArrayList<>();
// 動的配列に要素を追加する
sites2.add("Wiki");
sites2.add("サンプル");
sites2.add("Google");
System.out.println("ArrayList 2: " + sites2);
// 要素を保持する
sites.retainAll(sites2);
System.out.println("保持された要素: " + sites);
}
}
上記のプログラムを実行すると、出力結果は次のとおりです:
ArrayList 1: [Google, サンプル, Taobao] ArrayList 2: [Wiki, サンプル, Google] 保留的元素: [Google, サンプル]
上記の例では、sites と sites2 という名前の動的配列を作成しました。
この行に注意してください:
sites.retainAll(sites2);
この例では、retainAll() メソッドの引数として配列 sites2 を渡しました。このメソッドは、sites から sites2 に存在しない要素を削除します。
ArrayList と HashSet の共通要素:
例
import java.util.HashSet;
class Main {
public static void main(String[] args) {
// 配列を作成する
ArrayList<Integer> numbers = new ArrayList<>();
// 配列に要素を追加する
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("ArrayList: " + numbers);
// HashSetオブジェクトを作成する
HashSet<Integer> primeNumbers = new HashSet<>();
// HashSetに要素を追加する
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("HashSet: " + primeNumbers);
// arraylist内の共通要素を保持する
numbers.retainAll(primeNumbers);
System.out.println("共有元素: " + numbers);
}
}
上記のプログラムを実行すると、出力結果は次のとおりです:
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] 共有元素: [2, 3]
上記の例では、numbers という名前の ArrayList と primeNumbers という名前の HashSet を作成しました。
この行に注意してください:
numbers.retainAll(primeNumbers);
コードでは、retainAll() メソッドが numbers 動的配列から primeNumbers に存在しないすべての要素を削除しました。
その他の拡張
Java ArrayList