Set集合专项实验

2.1 验证性实验

1、验证是否生成不重复的随机整数集合:生成 10 个 0~50 之间(包含 0 和 50)的随机整数,使用 Set 集合存储这些整数,利用 Set 集合的特性确保存储的整数不重复最终输出集合中的所有元素。

知识补充: Random rd= new Random(); //Random位于 java.util包中

int n = rd.nextInt(n); //0~n-1之间的整数

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| import java.util.HashSet; import java.util.Random; import java.util.Set; public class RandomUniqueNumbers { public static void main(String\[\] args) { // 创建Set集合存储不重复的随机数 Set<Integer> numbers = new HashSet<>(); // 创建Random对象用于生成随机数 Random random = new Random(); // 生成10个不重复的随机数 while (numbers.size() < 10) { // 生成0~50之间(包含0和50)的随机整数 int num = random.nextInt(51); // nextInt(51)生成0-50的整数 numbers.add(num); // Set会自动处理重复值 } // 输出集合中的所有元素 System.out.println("生成的10个不重复随机数为:"); for (int number : numbers) { System.out.print(number + " "); } } } |

2、验证以下功能是否正确:键盘输入一个字符串,利用set集合去除其重复字符,打印输出最终不同的字符。

代码如下,请验证上述问题相关功能。

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class RemoveDuplicatesSimple { public static void main(String\[\] args) { // 创建Scanner对象用于接收键盘输入 Scanner scanner = new Scanner(System.in); // 提示用户输入字符串 System.out.print("请输入一个字符串:"); String input = scanner.nextLine(); // 创建HashSet集合存储字符,自动去重 Set<Character> charSet = new HashSet<>(); // 遍历字符串中的每个字符并添加到集合 for (int i = 0; i < input.length(); i++) { charSet.add(input.charAt(i)); } // 直接打印集合中的字符 System.out.print("去除重复字符后的结果:"); for (char c : charSet) { System.out.print(c); // 逐个打印集合中的字符 } // 关闭Scanner scanner.close(); } } |

2.2 自主设计性实验

3、利用Scanner输入6个1-100之间的整数,要求利用目前所学的集合按照添加顺序进行存储,同时自动排除输入的重复数据,根据要求完成以下功能:

(1) 打印输出集合中最大的数据

(2) 打印输出集合中所有数据的平均值

4、定义一个Employee类,属性:工号-empId、姓名-empName、性别-empSex、部门-department、工资-slalary,创建多个Employee对象,存储在Set集合中,要求员工信息不能重复(所有信息相同视为重复),根据要求完成以下功能:(部门可以为:人事部、研发部、财务部、咨询部)

(1) 打印输出 集合中所有的研发部员工

(2) 打印输出 集合中所有工资大于 5000元的女员工

(3) 统计集合中财务部员工的人数

(4) 统计集合中 人事部 员工的平均工资

5、创建一个商品(Product)类,属性:商品名,商品单价,商品的数量,商品产地。

  1. 创建多个商品对象,存储在Set集合中,集合中不能出现重复商品,商品名相同即为重复,在Product类中添加必要的方法;
  2. 显示所有的商品信息;
  3. 打印输出商品价格 > 1000 的所有商品信息;
  4. 打印售空的商品的信息;
  5. 打印输出商品产地为"北京"的商品信息;
  6. 输入一个商品名,查询出此类商品的信息,如果不存在,则打印商品"商场无此商品!"
  7. 输入一个价格段,查询出集合中所有在这个价格区间的所有商品信息。

6、设计一个图书收藏系统,要求:

定义Book类,包含属性(ISBN、书名、作者),ISBN 相同则为同一本书。

定义Library类,包含Set<Book>类型的成员变量,实现以下方法:

addBook(Book book):添加图书(自动去重)。

removeBook(String isbn):根据 ISBN 删除图书。

findBook(String isbn):根据 ISBN 查找图书并返回。

showAllBooks():打印所有图书信息(格式:ISBN: xxx, 书名: xxx, 作者: xxx)。

在main方法中测试:添加 5 本图书(含 2 本重复 ISBN),删除 1 本,查找 1 本,最后展示所有图书。

相关推荐
vipbic13 小时前
别再把“做个H5”挂嘴边了:这个词,官方压根就没有定义过
前端
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
心中有国也有家14 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
来杯@Java14 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
ZC跨境爬虫15 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
小陈同学呦15 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
卷毛的技术笔记15 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥15 小时前
匿名函数 lambda + 高阶函数
java·python·算法
喵个咪15 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
isyangli_blog15 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php