Java集合運算

1、並集:以屬於A或屬於B的元素爲元素的集合稱爲A與B的並(集),記作A∪B(或B∪A),讀作“A並B”(或“B並A”),即A∪B={x|x∈A,或x∈B}   。

2、交集: 以屬於A且屬於B的元素爲元素的集合稱爲A與B的交(集),記作A∩B(或B∩A),讀作“A交B”(或“B交A”),即A∩B={x|x∈A,且x∈B}

3、補集:屬於全集U不屬於集合A的元素組成的集合稱爲集合A的補集,記作CuA,即CuA={x|x∈U,且x不屬於A}。

差集:以屬於A而不屬於B的元素爲元素的集合成爲A與B的差(集)

擴展資料

一、交集運算

(1)若兩個集合A和B的交集爲空,則說他們沒有公共元素,寫作:A∩B = ∅。例如集合 {1,2} 和 {3,4} 不相交,寫作 {1,2} ∩ {3,4} = ∅。

(2)任何集合與空集的交集都是空集,即A∩∅=∅。

(3)更一般的,交集運算可以對多個集合同時進行。例如,集合A、B、C和D的交集爲A∩B∩C∩D=A∩[B∩(C ∩D)]。交集運算滿足結合律,即A∩(B∩C)=(A∩B) ∩C。

(4)最抽象的概念是任意非空集合的集合的交集。若M是一個非空集合,其元素本身也是集合,則 x 屬於 M 的交集,當且僅當對任意 M 的元素 A,x 屬於 A。這一概念與前述的思想相同,例如,A∩B∩C 是集合 {A,B,C} 的交集(M 何時爲空的情況有時候是能夠搞清楚的,請見空交集)。

二、並集的性質

A∪B,B A∪B,A∪A=A,A∪∅=A,A∪B=B∪A

若A∩B=A,則A∈B,反之也成立;

若A∪B=B,則A∈B,反之也成立。

若x∈(A∩B),則x∈A且x∈B;

若x∈(A∪B),則x∈A,或x∈B。

三、補集運算

(1)∁U(A∩B)=(∁UA)∪(∁UB),即“交之補”等於“補之並”;

(2)∁U(A∪B)=(∁UA)∩(∁UB),即“並之補”等於“補之交”

import java.util.HashSet;
import java.util.Scanner;

public class Aggregate {

    public static void main(String[] args) {
//        爲四個集合開闢內存空間,方便後續賦值
        HashSet<Integer> result = new HashSet<>();
        HashSet<Integer> A = new HashSet<>();
        HashSet<Integer> B = new HashSet<>();
        HashSet<Integer> C = new HashSet<>();
        System.out.println("請先輸入A、B、C每個集合元素的個數,然後依次輸入集合中的元素.");
//        獲取控制檯輸入
        Scanner scanner = new Scanner(System.in);
//        獲取A、B、C集合的元素個數
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
//        爲集合A賦值
        for (int i = 0;i < a;i++){
            int i1 = scanner.nextInt();
            A.add(i1);
        }
//        爲集合B賦值
        for (int j = 0;j < b;j++){
            int j1 = scanner.nextInt();
            B.add(j1);
        }
//        爲集合C賦值
        for (int k = 0;k < c;k++){
            int k1 = scanner.nextInt();
            C.add(k1);
        }
//        查看A、B、C集合中的元素
        System.out.println("A=" + A.toString());
        System.out.println("B=" + B.toString());
        System.out.println("C=" + C.toString());
//        清除result中的元素
        result.clear();
//        將A集合中的元素放入result中
        result.addAll(A);
//        去除A中所有所有不在B中的元素
        result.retainAll(B);
        System.out.println("交集=" + result);
        result.clear();
//        把A、B集合中過的元素都加進去,Set集合不會重複
        result.addAll(A);
        result.addAll(B);
        System.out.println("並集=" + result);
        result.clear();
        result.addAll(A);
//        清除A中所有屬於B的元素
        result.removeAll(B);
        System.out.println("差集=" + result);
        result.clear();
        result.addAll(C);
        result.removeAll(A);
        System.out.println("補集=" + result);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章