java求集合的並集、交集、補集、差集和對稱差集

package jmath;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
//創建一個集合類set
public class set {
    public static void main(String[] args) {

        Set<Integer> result = new HashSet<Integer>();
        Set<Integer> set1 = new HashSet<Integer>(){{
            System.out.println("請輸入集合的元素個數:");
            Scanner input=new Scanner(System.in);
            int max=input.nextInt();
            System.out.println("請輸入一個集合:");//輸入要用的集合,進行相關的運算
            Scanner input1=new Scanner(System.in);
            int[] arr=new int[max];
            for(int i=0;i<arr.length;i++){
                arr[i]=(int) input1.nextInt();
                add(arr[i]);
            }
        }};
        Set<Integer> set2 = new HashSet<Integer>(){{
            System.out.println("請輸入集合的元素個數:");
            Scanner input=new Scanner(System.in);
            int max=input.nextInt();
            System.out.println("請再輸入一個集合:");
            Scanner input1=new Scanner(System.in);
            int[] a=new int[max];
            for(int i=0;i<a.length;i++){
                a[i]=(int) input1.nextInt();
                add(a[i]);
            }
        }};
        System.out.println("請輸入操作指令:1代表執行交集;2代表執行差集;;3代表執行對稱差集;4代表執行並集");
        //輸入操作指令
        Scanner input=new Scanner(System.in);
        int aaa=input.nextInt();
        //求交集
        if(aaa==1){
            result.clear();
            result.addAll(set1);
            result.retainAll(set2);
            System.out.println("交集:"+result);
        }
        //求差集
        else if(aaa==2){
            result.clear();
            result.addAll(set1);
            result.removeAll(set2);
            System.out.println("差集:"+result);
        }
        //求對稱差集
        else if(aaa==3){
            result.clear();
            result.addAll(set1);
            result.removeAll(set2);
            Set<Integer> a = result;
            System.out.println("差集:"+result);

            result.clear();
            result.addAll(set2);
            result.removeAll(set1);
            Set<Integer> b = result;
            result.clear();
            result.addAll(a);
            result.addAll(b);
            System.out.println("對稱差集:"+result);
        }
            //求並集
        else{
            result.clear();
            result.addAll(set1);
            result.addAll(set2);
            System.out.println("並集:"+result);
            }
    }
}
發佈了63 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章