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);
    }
}

 

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