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 本,最后展示所有图书。

相关推荐
考虑考虑1 小时前
JDK26中的Map.ofLazy
java·后端·java ee
剪刀石头布啊2 小时前
vue-react为何要虚拟dom
前端
剪刀石头布啊2 小时前
ahooks常用的一些库,我们使用一下
前端
剪刀石头布啊2 小时前
从git更新本地提交记录到更新已经推送到远端记录
前端
Flynt4 小时前
axios 被投毒半年后,我把 npm 的"安全防线"实测了一遍:最信任的 SHA512 是安慰剂
前端·npm·node.js
excel5 小时前
Base62 和 Base64 有什么区别?
前端
鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源