正文
✅ 实验题目:验证HashSet自动去重特性
两个验证案例:
生成10个0~50之间不重复随机整数
键盘输入字符串,去除重复字符
核心知识点:Set集合最大特点:不允许存储重复元素,无序;底层基于HashMap,添加重复元素add()返回false,不会报错。
1.随机不重复整数代码
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomUniqueNumbers {
public static void main(String[] args) {
Set numbers = new HashSet<>();
Random random = new Random();
while (numbers.size() < 10) {
int num = random.nextInt(51);
numbers.add(num);
}
System.out.println(“生成的10个不重复随机数为:”);
for (int number : numbers) {
System.out.print(number + " ");
}
}
}
运行说明:while循环持续生成,直到集合size=10,HashSet自动舍弃重复值。
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class RemoveDuplicatesSimple {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print(“请输入一个字符串:”);
String input = scanner.nextLine();
Set 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©;
}
scanner.close();
}
}
⚠️ 踩坑提醒:HashSet输出字符顺序和原字符串不一致!想要保留字符顺序请换成LinkedHashSet。
思考题
Q:Java中的Set集合有什么特点?它和List集合最明显的区别是什么?
A:Set元素不可重复;List允许重复元素。Set大多无序(LinkedHashSet除外),List是有序、按下标索引访问。
Q:有一个字符串"hello world",如何利用Set集合快速找出其中所有不重复的字符?
A:遍历字符串每个char,逐个add进HashSet,集合内就是全部不重复字符。
结语
本篇是Set入门验证代码,适合刚学习集合框架的同学,下一篇讲解LinkedHashSet有序去重、求最值平均值。




