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 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:

Trở thành Android Developer chuyên nghiệp với 30h học
Bạn muốn trở thành một nhà phát triển mobile app trên nền tảng Android? Vậy thì đây là khóa học rất phù hợp với bạn, chi phí rẻ, học online tại nhà.
XEM NGAY

Câu hỏi và bài tập

  • 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.

Nguồn: freetuts.net