java实现集合的运算

2024-05-05 05:58
文章标签 java 运算 集合 实现

本文主要是介绍java实现集合的运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

再也不愿意多讲,作为一个信誓旦旦不学java的孩子能写成这样你们也不要再怪我了,这是我们的课设题目,为自己写的 java实现集合的运算要是你们也有相同的题目就果敢的cc吧。

要求选用线性表的一种合适的存储结构表示集合,并实现集合的并、交等相关运算,并设计一个验证程序对给出的集合运算加以验证。

集合的运算至少应包括:

1)集合创建

2)集合的输出

3)并集运算

4)交集运算

5)差集运算:属于A而不属于B的元素为元素的集合称为AB的差

6)包含运算:可给分为子集、真子集

7)属于运算:判断一个元素是否在集合中

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

这篇关于java实现集合的运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960929

相关文章

Java File中renameTo的介绍和使用说明

看到项目中有个地方用的File的renameTo这个方法,本以为这个方法就是用来文件重命名的,但是项目中确用它来进行文件的移动。就是使用renameTo将一个文件从一个目录移动另一个目录下! 下面就简单介绍一下renameTo,并整理一个renameTo的使用! renameTo的介绍 官方文档说明 /*** 重新命名此抽象路径名表示的文件。此方法行为的许多方面都是与平台有关的:重命名操作

十个问题带你了解和掌握java HashMap

十个问题带你了解和掌握java HashMap 一、前言 本篇内容是源于 “ 由阿里巴巴Java开发规约HashMap条目引发的故事”,并在此基础上加了自己的对HashMap更多的思考认识和整理。并且作为一名java开发工程师,应该是要了解和掌握的这些知识! 在《阿里巴巴java开发规约中》提到: 【推荐】集合初始化时,指定集合初始值大小。 说明:HashMap使用如下构造方法进行初始化

JAVA中死锁例子分析和上下文切换的实战

本篇是整理《java多线程编程核心技术》和《java并发编程的艺术》中对于死锁和上下文切换的查看命令的总结。 一、死锁 1.死锁的图解 死锁 死锁是两个甚至多个线程被永久阻塞时的一种运行局面。死锁的原因:由于两个甚至多个线程相互等待对方已被锁定的资源。 2.死锁的例子 public class DeadThreadLockTest implements Runnable{priv

Dubbo和Spring结合配置文件内容解析为bean的过程

Dubbo 现在已经被很多公司广泛的使用,Dubbo的使用和特性本篇不做讲解,本篇讲解一下Dubbo和Spring结合配置文件内容解析为bean的过程! Dubbo是结合Spring来进行使用的,其中bean依赖Spring的IOC容器进行管理。Spring默认的Bean加载机制肯定是不能去加载Dubbo提供的Bean,那么Dubbo中的Bean是如何加载到Spring 容器的呢?下面进行介绍:

探索Java的日志世界

探索Java的日志世界 本文的思维导图 一、主题 打开日志的大门,探索的Java日志世界 二、目标 了解常用的日志框架掌握日志框架的选择和使用以及开发规范了解日志框架中的一些设计思想 三、内容 1、日志及日志框架简介 1.1 、日志简介 1.1.1 、 什么是日志? 1)基本字义是指工作日志 ,详细介绍一个过程和经历的记录。 日志(汉语词汇) 2)网络设备、系统及服务程序等,

不就是Java编程嘛,来来来

点击上方☝Java编程技术乐园,轻松关注! 及时获取有趣有料的技术文章 做一个积极的人编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开!                             不就是Java编程嘛 当我写下第一行代码的时候 我觉得它很有趣 当我写下第一百行代码的时候 我觉得它很善良 抛出了异常而且还告

重试机制实现方案

大家好,我是阿飞云 怕什么真理无穷,进一步有近一步的欢喜 本文内容是目前团队内小磊同学对重试机制实现方案的梳理总结。 从为什么需要重试的背景开始,到重试的场景,大致的一些设计思路,最后通过两个成熟的retry组件进行案例讲解,理论+实战。 背景 重试是系统提高容错能力的一种手段。在一次请求中,往往需要经过多个服务之间的调用,由于网络波动或者其他原因,请求可能无法正常到达服务端或者服务端的请

继续卷!面试又问Spring 事务有几种传播行为和隔离级别?

怕什么真理无穷 进一步有近一步的欢喜 面试又被问到了事务,来吧,要么卷起来,要么躺平。卷不动躺平会不会导致数据不一致? 事务概念 事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 说简单点就是,要么所有执行success,不然就fail。它最终的目标:数据不会被破坏。即事务操作成功,数据的结果和业务期待的结果是一致的。 事务的属性 一个逻辑工作单元要成为事

C:单链表的简单实现

前言 今天整理资料的时候翻出来的文件,发现是以前学习数据结构的时候写的代码,当初是看郝凯老师的视频学习的C语言的数据结构,下面是对于一个单链表的简单的实现。 /*******************************************************************************@file SingleLinker.c*@version V1.0

C:简单实现BaseCode64编码

What is Base64? 前言 目前来看遇到过Base 16、Base 32、Base 64的编解码,这种编码格式是二进制和文本编码转化,是对称并且可逆的转化。Base 64总共有64个ASCII码字符,包括A-Z,a-z,0-9,“+”和“/ ”。详细介绍可以参考了这篇文章,对Base 64的原理做了比较详细的介绍。 编码原理 转换 Base 64编码的64个ASCII字符需要6