Menu
CoddyTech

Toán học: hiệu tập hợp

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 31 trên 59.

Phép hiệu giữa hai tập hợp (set) tạo ra một tập hợp mới chứa các phần tử có trong tập hợp thứ nhất nhưng không có trong tập hợp thứ hai. Trong Java, bạn có thể thực hiện việc này bằng phương thức (method) removeAll().

First, create two HashSets.
HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);

Tiếp theo, tạo một HashSet mới cho hiệu của hai tập hợp, bắt đầu với tất cả phần tử từ set1:

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

Sau đó, xóa tất cả phần tử có trong set2:

differenceSet.removeAll(set2); // [1]
challenge icon

Thử thách

Dễ

Tạo một phương thức có tên setDifference nhận hai HashSet số nguyên làm đầu vào. Phương thức cần tính hiệu tập hợp, gồm các phần tử có trong tập hợp thứ nhất nhưng không có trong tập hợp thứ hai, rồi in kết quả theo định dạng:

Difference: [elements]

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 setDifference(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 biểu diễn tập hợp (set) thứ nhất (ví dụ: [1,2,3])
        String set1String = scanner.nextLine();
        // Đọc chuỗi JSON biểu diễn tập hợp thứ hai (ví dụ: [2,3,4])
        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);

        setDifference(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