Java ArrayList containsAll()方法检查arraylist是否包含指定集合的所有元素。
containsAll()方法的语法为:
arraylist.containsAll(Collection c);
collection - 检查集合的所有元素是否都出现在arraylist中。
如果arraylist包含指定集合的所有元素,则返回true
如果arraylist中存在的元素类与指定集合中的元素类不兼容,则引发ClassCastException
如果集合包含null元素且arraylist不允许null值,则引发NullPointerException
注意:可以说containsAll()方法检查集合是否为arraylist的子集。
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
//创建 ArrayList
ArrayList<String> languages1 = new ArrayList<>();
//添加元素到 ArrayList
languages1.add("JavaScript");
languages1.add("Python");
languages1.add("Java");
System.out.println("ArrayList 1: " + languages1);
//创建另一个 ArrayList
ArrayList<String> languages2 = new ArrayList<>();
//添加元素到 ArrayList
languages2.add("Java");
languages2.add("Python");
System.out.println("ArrayList 2: " + languages2);
// 检查ArrayList 1是否包含ArrayList 2
boolean result1 = languages1.containsAll(languages2);
System.out.println(" ArrayList 1包含ArrayList 2的所有元素 : " + result1);
// 检查ArrayList 2是否包含ArrayList 1
boolean result2 = languages2.containsAll(languages1);
System.out.println(" ArrayList 2包含ArrayList 1的所有元素 : " + result2);
}
}输出结果
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [Java, Python] ArrayList 1包含ArrayList 2的所有元素 : true ArrayList 2包含ArrayList 1的所有元素 : false
在上面的示例中,我们创建了两个名为languages1和languages2的ArrayList。注意表达式
// 返回 true languages1.containsAll(languages2)
这里,containsAll()方法检查languages1是否包含languages2的所有元素。因此,该方法返回true。但是,请注意下面的表达式:
// 返回 false languages2.containsAll(languages1)
这里,containsAll()方法检查languages2是否包含languages1的所有元素。因此,返回false
注意:containsAll()方法不是特定于ArrayList类的。该类继承自List接口。
import java.util.ArrayList;
import java.util.HashSet;
class Main {
public static void main(String[] args) {
//创建 ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
//添加元素到 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);
System.out.println("HashSet: " + primeNumbers);
// 检查ArrayList是否包含HashSet的所有元素
boolean result1 = numbers.containsAll(primeNumbers);
System.out.println("ArrayList包含HashSet的所有元素 : " + result1);
// 检查HashSet是否包含ArrayList的所有元素
boolean result2 = primeNumbers.containsAll(numbers);
System.out.println("HashSet包含ArrayList的所有元素 : " + result2);
}
}输出结果
ArrayList: [1, 2, 3] HashSet: [2, 3] ArrayList包含HashSet的所有元素 : true HashSet包含ArrayList的所有元素 : false
在上面的示例中,我们创建了一个名为numbers的arraylist和一个名为primeNumbers的哈希集合。注意这些表达式,
// 检查ArrayList是否包含HashSet // 返回 true numbers.containsAll(primeNumbers) // 检查HashSet是否包含ArrayList // 返回 false primeNumbers.containsAll(numbers)
注意:我们可以使用Java ArrayList retainAll()方法获取ArrayList和HashSet之间的公共元素。