并且,从列表中删除指定集合中不存在的所有那些元素。
retainAll()
方法的语法为:
arraylist.retainAll(Collection c);
在这里, arraylist是ArrayList
类的对象。
keepAll()参数
retainAll()
方法采用单个参数。
- collection-仅将collection中存在的那些元素保留在arraylist中。
keepAll()返回值
- 如果从arraylist中删除元素,则返回
true
- 如果arraylist中存在的元素类与指定集合中的元素类不兼容,则抛出
ClassCastException
- 如果arraylist包含null元素,并且指定的集合不允许null元素,则抛出
NullPointerException
示例1:Java ArrayList keepAll()
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// create an ArrayList
ArrayList languages1 = new ArrayList<>();
// insert element to the ArrayList
languages1.add("JavaScript");
languages1.add("Python");
languages1.add("Java");
System.out.println("ArrayList 1: " + languages1);
// create another ArrayList
ArrayList languages2 = new ArrayList<>();
// add elements to ArrayList
languages2.add("English");
languages2.add("Java");
languages2.add("Python");
System.out.println("ArrayList 2: " + languages2);
// retain the common element
languages1.retainAll(languages2);
System.out.println("Common Elements: " + languages1);
}
}
输出
ArrayList 1: [JavaScript, Python, Java]
ArrayList 2: [English, Java, Python]
Common Elements: [Python, Java]
在上面的示例中,我们创建了两个数组列表,名为language1和language2 。注意这一行,
languages1.retainAll(languages2);
在这里,我们将arraylist 语言2作为参数传递给retainAll()
方法。该方法删除从languages1中不存在在languages2所有元素。因此,仅保留共同的要素。
示例2:显示ArrayList和HashSet之间的公共元素
import java.util.ArrayList;
import java.util.HashSet;
class Main {
public static void main(String[] args) {
// create an ArrayList
ArrayList numbers = new ArrayList<>();
// add element to ArrayList
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("ArrayList: " + numbers);
// create a HashSet
HashSet primeNumbers = new HashSet<>();
// add elements to HashSet
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("HashSet: " + primeNumbers);
// retain common elements in the ArrayList
numbers.retainAll(primeNumbers);
System.out.println("Common Elements: " + numbers);
}
}
输出
ArrayList: [1, 2, 3]
HashSet: [2, 3, 5]
Common Elements: [2, 3]
在上面的示例中,我们创建了一个名为numbers的数组列表和一个名为primeNumbers的哈希集。注意这一行,
numbers.retainAll(primeNumbers);
在这里, retainAll()
方法从primeNumbers中不存在的数字中删除所有那些元素。并且,仅保留公共元素。因此, 2和3保留在arraylist 编号中 。