1、set的定义
Set,不允许出现重复元素,并且无序的集合,主要有HashSet实现类
在判断重复元素的时候,Set集合会调用HashCode()和equal()方法来实现。
注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素
用于存储(存入无序和取出的顺序不一定相同)元素,值不能重复
特点:
- 可以用来去重
- 元素无序
2、HashSet类
HashSet类位于java.util包中
- HashSet实现了Set接口
- Hash无序,即不会记录插入的顺序
- HashSet一个不允许有重复元素的集合
语法格式:HashSet对象
Set<类型> set = new HashSet<>();
HashSet类常用方法
- add(Object obj)方法:用于向Set集合中添加元素,添加成功返回true,否则返回false
- size()方法:返回Set集合中的元素个数
- remove(Object obj)方法:删除Set集合中的元素,删除成功返回true,否则返回false
- contains()方法:如果Set不包含元素,则返回true,否则返回false
- clear()方法:移除此Set中的所有元素
例题
https://www.lanqiao.cn/problems/539/learning/
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N<=100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与“排序”的工作。
输入描述:第一行为1个正整数,表示所生成的随机数的个数:N
第二行有N个用空格隔开的正整数,为所产生的随机数。
输出描述:10 8
20 40 32 67 40 20 89 300 400 15 15 20 32 40 67 89 300 400
import java.util.*;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
Set<Integer> set = new HashSet<>();
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
if(!set.contains(a[i])){
set.add(a[i]);
list.add(a[i]);
}else{
continue;
}
}
Collections.sort(list);
System.out.println(list.size());
for (int x:list){
System.out.print(x+" ");
}
}
标签:Set,HashSet,int,元素,list,集合
From: https://blog.csdn.net/m0_74343360/article/details/137156619