java实现集合运算_java实现集合的运算

package 期末算法设计;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Scanner;

import java.util.TreeSet;

public class SetOperation {

HashMap allSet = new HashMap<>();

Scanner read =

new Scanner(System.in);

class Set{

String name;

TreeSet data = new TreeSet<>();

}

public void creatSet(){

System.out.println("输入集合名和元素的个数");

Set temp = new Set();

temp.name = read.next();

int size = read.nextInt();

System.out.println("输入元素");

for(int i=0;i

int dataTemp = read.nextInt();

temp.data.add(dataTemp);

}

allSet.put(temp.name, temp);

System.out.println(temp.name +temp.data.toString());

System.out.println("集合创建成功");

}

public Set getSet(){

System.out.println("输入集合名");

String name = read.next();

return allSet.get(name);

}

public void showSet(){

Set temp = getSet();

System.out.println(temp.name +temp.data.toString());

System.out.println("集合查询成功");

}

public void showAllSet(){

System.out.println("所有的集合名为。。。");

String name = allSet.keySet().toString();

System.out.println(name);

}

public void operation(){

TreeSet result = new

TreeSet<>();

int operation;

System.out.println("输入你的操作

(1.交

2.并

3.差

4.包含

5 属于 )" );

operation = read.nextInt();

switch (operation) {

case 1: result =jiao();System.out.println(result.toString());

break;

case 2: result

=bing();System.out.println(result.toString());

break;

case 3: result

=cha();System.out.println(result.toString());

break;

case 4: baohan();

break;

case 5:shuyu();

break;

default:System.out.println("wrong input");

break;

}

}

public TreeSet jiao(){

Set a = getSet();

Set b = getSet();

TreeSet data = new TreeSet<>();

TreeSet temp = new TreeSet<>();

temp.addAll(a.data);

while(!temp.isEmpty()){

int x=temp.pollFirst();

if(b.data.contains(x)){

data.add(x);

}

}

return data;

}

public TreeSet bing(){

Set a = getSet();

Set b = getSet();

TreeSet data = new TreeSet<>();

data.addAll(a.data);

data.addAll(b.data);

return data;

}

public TreeSet cha(){

Set a = getSet();

Set b = getSet();

TreeSet data = new TreeSet<>();

TreeSet temp = new TreeSet<>();

temp.addAll(a.data);

while(!temp.isEmpty()){

int x=temp.pollFirst();

if(b.data.contains(x)!=true){

data.add(x);

}

}

return data;

}

public void baohan(){

Set a = getSet();

Set b = getSet();

TreeSet temp = new TreeSet<>();

temp.addAll(a.data);

while(!temp.isEmpty()){

int x=temp.pollFirst();

if (!b.data.contains(x)) {

System.out.println(a.name+"不包含于"+b.name);

return ;

}

}

System.out.println(a.name+"包含于"+b.name);

}

public void shuyu(){

Set a = getSet();

System.out.println("输入元素");

int x=read.nextInt();

if(a.data.contains(x)){

System.out.println(x+"属于"+a.name);

}

else{

System.out.println(x+"不属于"+a.name);

}

}

public static void main(String[] args){

SetOperation operation = new SetOperation();

Scanner read = new Scanner(System.in);

System.out.println("输入你的操作: 1.创建集合

2.查询单个集合 3.查询所有集合 4.集合运算

5.退出系统");

int x;

do {

x=read.nextInt();

switch (x) {

case 1:operation.creatSet();

break;

case 2:operation.showSet();

break;

case 3:operation.showAllSet();

break;

case 4:operation.operation();

default:

break;

}

} while (x!=5);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值