目录
HashSet类常用方法
1 add(Object obj)方法
2 size() 方法
3 remove(Object obj)方法
4 contains()方法
5 clear() 方法
例题实战
set
一个不允许出现重复的元素,并且无序的集合,主要有HashSet实现类。
在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。
注重独一无二的性质,该体系集合可以知道某物是否是存在与集合中
用于存储无序(存入和去除的顺序不一定相同)元素,值不能重复。
特点:
可以用来去重 元素无序
HashSet类常用方法
1 add(Object obj)方法
用于向Set集合中添加元素,添加成功返回true,否则返回false。
创建HashSet对象set,用于保存字符串元素:
Set<String> set=new HashSet<>();
也可以用来保存整数元素:Set<Integer> set=new HashSet<>();
package AAA;
import java.util.*;
public class Main1 {
public static void main(String args[]) {
Set<Integer> set=new HashSet<>();
boolean a=set.add(1);
boolean b=set.add(1);
System.out.print(a+" "+b);
}
}
结果为true false。说明set中不存在重复元素
2 size() 方法
返回Set集合中的元素个数
package AAA; import java.util.*; public class Main1 { public static void main(String args[]) { Set<Integer> set=new HashSet<>(); set.add(1); set.add(1); System.out.println("第一次添加集合中有:"+set.size()+"个元素"); set.add(2); System.out.println("此时的集合中有:"+set.size()+"个元素"); } }
3 remove(Object obj)方法
删除Set集合中的元素,删除成功返回true,否则返回false.
4 contains()方法
如果Set不包含元素,则返回true,否则返回false.
5 clear() 方法
移除此Set 中的所有元素
例题实战
题目:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(1<=N<=100),对于其中重复的数字只能保留一个,其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些书从小到大排列,按照排列好的顺序去找同学做调查。请你协作明明完成“去重”与“排序”的工作
输入
10
20 40 32 67 40 20 89 300 400 15
输出
8
15 20 32 40 67 89 300 400
package AAA; import java.sql.Array; import java.util.*; public class Main2 { public static void main(String args[]) { //System.out.println("请输入您所需要计算机随机产生的整数个数:"); Scanner scanner =new Scanner(System.in); int a=scanner.nextInt();//确定数组长度 int c[]=new int[a]; for(int i=0;i<a;i++) { c[i]=scanner.nextInt(); }//接受数据 Set<Integer> set=new HashSet<>(); List<Integer> list=new ArrayList(); for(int i=0;i<a;i++) { if(!set.contains(c[i])) { set.add(c[i]); list.add(c[i]);//虽然set有去重效果,但是list没有,所以需要条件 }//去重 } System.out.println("去重后的结果:"); for(int x:set) { System.out.print(x+" "); } System.out.println(); System.out.println("去重后的整数个数:"); System.out.println(set.size()); Collections.sort(list); System.out.println("排序后的结果:"); for(int x:list) { System.out.print(x+" "); } } }