Java - Thực hiện phép toán hợp, tìm những phần tử khác nhau và toán tử giao giữa 2 Set.
Viết chương trình khai báo 2 Set
và nhập vào các phần tử cho Set
đó. Sau đó tiến hành thực hiện phép toán hợp, tìm những phần tử khác nhau và toán tử giao giữa 2 Set
.
Bài giải
-------------------- ######## --------------------
Để giải bài này, chúng ta sẽ sử dụng phương thức clone()
để tạo bản sao của 1 Set
bất kỳ. Nếu không sử dụng phương thức này thì sau mỗi lần thực hiện 1 toán tử nào đó thì các phần tử có trong Set
sẽ thay đổi và vì vậy, kết quả của những yêu cầu khác trong chương trình này sẽ không còn đúng nữa.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Bài giải
public static void main(String[] args) { // khai báo 2 mảng chứa các loài động vật String animal1[] = {"Dog", "Cat", "Bear", "Bee", "Snake", "Tiger"}; String animal2[] = {"Dog", "Bird", "Snake", "Monkey"}; // chuyển 2 mảng này thành List sử dụng Arrays.asList() // và thêm vào trong Set HashSet<String> setAnimal1 = new HashSet<>(Arrays.asList(animal1)); HashSet<String> setAnimal2 = new HashSet<>(Arrays.asList(animal2)); // phương thức clone() sẽ tạo 1 bản sao của setAnimal2 // sau đó ép kiểu của setAnimal2.clone() về HashSet HashSet<String> unionSet = (HashSet<String>) setAnimal2.clone(); // Toán tử hợp // thêm các phần tử có trong setAnimal1 vào trong setAnimal2 unionSet.addAll(setAnimal1); // hiển thị setAnimal2 sau khi thêm System.out.println("Kết quả sau khi thực hiện toán tử hợp: "); System.out.println(unionSet); // Tạo 1 Set có tên là differentSet chứa những phần tử khác nhau // của setAnimal1 và setAnimal2 HashSet<String> differentSet = (HashSet<String>) setAnimal1.clone(); HashSet<String> setAnimal2Copy = (HashSet<String>) setAnimal2.clone(); // tìm phần tử khác nhau giữa diffentSet với setAnimal2 differentSet.removeAll(setAnimal2); // tìm phần tử khác nhau giữa setAnimal2Copy và setAnimal1 setAnimal2Copy.removeAll(setAnimal1); differentSet.addAll(setAnimal2Copy); System.out.println("Các phần tử có trong differentSet là: "); System.out.println(differentSet); // Toán tử giao HashSet<String> intersection = (HashSet<String>) setAnimal1.clone(); intersection.retainAll(setAnimal2); System.out.println("Các phần tử có trong intersection là: "); System.out.println(intersection); }
Kết quả sau khi biên dịch chương trình:
Câu hỏi thường gặp liên quan: