Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java kiểm tra một Set có phải tập con của Set khác

Trong bài này, chúng ta sẽ hiểu cách kiểm tra một Set có phải tập con của Set khác. Set là Collection không chứa phần tử trùng lặp, mô hình hóa tập hợp toán học. Interface Set chỉ chứa phương thức từ Collection và thêm giới hạn cấm trùng lặp.

Dưới đây là minh họa:

Giả sử đầu vào:

Tập 1: [90, 75, 60, 45]
Tập 2: [90, 60]

Đầu ra mong muốn:

Là tập con của tập kia? true

Thuật toán

Bước 1 - BẮT ĐẦU
Bước 2 - Khai báo...
Bước 3 - Định nghĩa giá trị.
Bước 4 - Tạo 2 Set, thêm phần tử bằng 'add'.
Bước 5 - Hiển thị Set ra console.
Bước 6 - Tạo biến boolean, gọi 'containsAll' trên tập 1 đối với tập 2.
Bước 7 - Kiểm tra tập 2 có phải tập con tập 1.
Bước 8 - Nếu có trả True, không thì False.
Bước 9 - Hiển thị kết quả.
Bước 10 - KẾT THÚC

Ví dụ 1

Gom thao tác dưới hàm 'main'.

import java.util.HashSet;
import java.util.Set;

public class Demo {
    public static void main(String[] args) {
        System.out.println("Các gói cần thiết đã được import");
        Set<Integer> input_set_1 = new HashSet<>();
        input_set_1.add(45);
        input_set_1.add(60);
        input_set_1.add(75);
        input_set_1.add(90);
        System.out.println("Tập 1 định nghĩa: " + input_set_1);
        Set<Integer> input_set_2 = new HashSet<>();
        input_set_2.add(60);
        input_set_2.add(90);
        System.out.println("Tập 2 định nghĩa: " + input_set_2);
        boolean result = input_set_1.containsAll(input_set_2);
        System.out.println("\nLà tập con của tập kia?\n" + result);
    }
}

Kết quả

Các gói cần thiết đã được import
Tập 1 định nghĩa: [90, 75, 60, 45]
Tập 2 định nghĩa: [90, 60]
Là tập con của tập kia?
true

Ví dụ 2

Đóng gói thao tác vào hàm thể hiện OOP.

import java.util.HashSet;
import java.util.Set;

public class Demo {
    static void is_subset(Set<Integer> input_set_1, Set<Integer> input_set_2){
        boolean result = input_set_1.containsAll(input_set_2);
        System.out.println("\nLà tập con của tập kia?\n" + result);
    }
    public static void main(String[] args) {
        System.out.println("Các gói cần thiết đã được import");
        Set<Integer> input_set_1 = new HashSet<>();
        input_set_1.add(45);
        input_set_1.add(60);
        input_set_1.add(75);
        input_set_1.add(90);
        System.out.println("Tập 1 định nghĩa: " + input_set_1);
        Set<Integer> input_set_2 = new HashSet<>();
        input_set_2.add(60);
        input_set_2.add(90);
        System.out.println("Tập 2 định nghĩa: " + input_set_2);
        is_subset(input_set_1, input_set_1); // Lỗi: nên là input_set_2
    }
}

Kết quả

Các gói cần thiết đã được import
Tập 1 định nghĩa: [90, 75, 60, 45]
Tập 2 định nghĩa: [90, 60]
Là tập con của tập kia?
true

Lưu ý: Ví dụ 2 có lỗi logic: gọi `is_subset(input_set_1, input_set_1)` thay vì `input_set_2`. Kết quả vẫn true vì tập tự chứa mình.