一、containsAll函數的基本用法
/**
* 檢查一個集合是否包含另一個集合中的所有元素
*
* @param set1 集合1
* @param set2 集合2
* @return true-包含所有元素,false-不包含所有元素
*/
public static boolean containsAll(Set set1, Set set2) {
return set1.containsAll(set2);
}
containsAll是Set介面中的一個方法,用於檢查一個集合是否包含另一個集合中的所有元素。這個方法的返回值為布爾類型,如果包含集合中的所有元素則返回true,否則返回false。
二、使用containsAll函數檢查一維數組
Set set1 = new HashSet(Arrays.asList("A", "B", "C"));
String[] array2 = new String[]{"B", "D", "A"};
Set set2 = new HashSet(Arrays.asList(array2));
if (containsAll(set1, set2)) {
System.out.println("包含所有元素");
} else {
System.out.println("不包含所有元素");
}
containsAll方法不僅可以對集合進行檢查,還可以使用它來檢查一維數組中是否包含另一個一維數組中的所有元素。在上面的示例代碼中,我們先將一維數組轉換成集合,然後調用containsAll方法進行判斷。
三、使用containsAll函數檢查二維數組
Set set1 = new HashSet(Arrays.asList("A", "B", "C"));
String[][] array2 = new String[][]{{"B", "D"}, {"A"}};
Set set2 = new HashSet();
for (String[] arr : array2) {
set2.addAll(Arrays.asList(arr));
}
if (containsAll(set1, set2)) {
System.out.println("包含所有元素");
} else {
System.out.println("不包含所有元素");
}
containsAll方法還能夠檢查二維數組中是否包含另一個二維數組中的所有元素。在上面的示例代碼中,我們使用一個for循環將二維數組中的所有元素加入到一個新的集合中,然後調用containsAll方法進行判斷。
四、使用containsAll函數檢查對象集合
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Person)) {
return false;
}
return name.equals(((Person) obj).getName());
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
Set set1 = new HashSet(Arrays.asList(new Person("Tom"), new Person("Jerry")));
Set set2 = new HashSet(Arrays.asList(new Person("Tom"), new Person("Lucy"), new Person("Jerry")));
if (containsAll(set1, set2)) {
System.out.println("包含所有元素");
} else {
System.out.println("不包含所有元素");
}
containsAll方法也可以用於檢查對象集合中是否包含另一個對象集合中的所有元素。在上面的示例代碼中,我們自定義了一個Person類,使用它來存儲每個對象的姓名。由於containsAll方法使用equals方法來進行比較,因此我們必須重寫equals和hashCode方法。
五、小結
使用containsAll函數可以方便地判斷一個集合是否包含另一個集合中的所有元素,無論是一維數組、二維數組還是對象集合。在使用此函數時,需要注意傳入參數的類型,必須是Set或其子類,例如HashSet、TreeSet等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295486.html
微信掃一掃
支付寶掃一掃