Menu
CoddyTech

Toán học: giao của HashSet

Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 30 trên 59.

Phép giao (intersection) của hai tập hợp là một tập hợp mới chỉ chứa các phần tử có mặt trong cả hai tập hợp. Trong Java, bạn có thể tính phép giao bằng phương thức retainAll().

Trước tiên, hãy tạo hai HashSet mới:

HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);

Tập hợp mới này sẽ bắt đầu với tất cả phần tử từ tập hợp đầu tiên.

HashSet<Integer> intersectionSet = new HashSet<>(set1);

Tiếp theo, chỉ giữ lại các phần tử cũng có trong tập hợp thứ hai:
Dùng phương thức retainAll().

intersectionSet.retainAll(set2);
System.out.println("Intersection: " +
						intersectionSet);
// Đầu ra: [2]
challenge icon

Thử thách

Dễ

Tạo một phương thức có tên intersectionSets, nhận vào hai HashSet chứa số nguyên, tính giao của chúng và in ra theo định dạng:

Intersection: [2]

Tự làm thử

import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static void intersectionSets(HashSet<Integer> set1, HashSet<Integer> set2) {
        // Viết code của bạn ở đây
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Đọc chuỗi JSON cho tập hợp thứ nhất (ví dụ: [1,2])
        String set1String = scanner.nextLine();
        // Đọc chuỗi JSON cho tập hợp thứ hai (ví dụ: [2,3])
        String set2String = scanner.nextLine();
        
        Type setType = new TypeToken<HashSet<Integer>>(){}.getType();
        HashSet<Integer> set1 = new Gson().fromJson(set1String, setType);
        HashSet<Integer> set2 = new Gson().fromJson(set2String, setType);
        
        intersectionSets(set1, set2);
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Java online