Set是一种不重复的数据集合,主要看HashSet和TreeSet
1.HashSet
HashSet构造函数
private transient HashMap<E,Object> map; //使用HashMap来实现 public HashSet() { map = new HashMap<>(); //看到它创建了一个HashMap,所以HashSet是通过HashMap来构建的 }从上面的代码可以看到,HashSet实质是包装HashMap来实现的,存入HashSet的值只是对应的HashMap的键,value被设置成一个固定的值。
所以想要看HashSet的实现过程需要看HashMap的原理。
2.TreeSet
TreeSet提供了一种有序的,不重复的数据结构,是通过TreeMap来实现。
3.HashSet和TreeSet的区别
a.HashSet是无序的,TreeSet是有序的
b.HashSet和TreeSet都是非线程安全的