一、set概述
1、通过API查看即可:方法和collection中的方法一模一样,没什么特别的方法,主要学习set的子类如何保证元素的唯一性。
2、 特点:
- 无索引:不可以通过索引值去操作集合
- 不可以重复:add()添加时,如果发现值重复了就会返回false,表示存储不成功
- 无序(存取不一致)
3、遍历:不能使用索引值遍历,但是可以用迭代器遍历(迭代器或增强for循环)
public static void demo1() {
HashSet<String> hs = new HashSet<>(); //创建HashSet对象
boolean b1 = hs.add("a");
boolean b2 = hs.add("a"); //当向set集合中存储重复元素的时候返回为false
hs.add("b");
hs.add("c");
hs.add("d");
System.out.println(hs); //HashSet的继承体系中有重写toString方法
System.out.println(b1);
System.out.println(b2);
for (String string : hs) { //只要能用迭代器迭代的,就可以使用增强for循环遍历
System.out.println(string);
}
}
二、HashSet原理
1、原理
- 我们使用Set集合都是需要去掉重复元素的,如果在存储的时候逐个equals()比较,