是继承自Collection接口的,表示无重复的元素集合。也仅有从Collection接口继承下来的方法。
1. Set集合特点
- set集合是不重复的。
- set集合是无序的。(但并不代表是随机的)
2. HashSet的比较原理
- 先比较俩个元素的hashCode值,相同执行2,不相同执行3
- 两个元素相同。
- 使用equals进行比较,true执行2,flase执行4。
- 两个元素不相同。
3. TreeSet的比较原理
一个自定义的类,想要使用TreeSet存储,会报ClassCaseException
- 自定义的类实现Comparable接口,(自然排序)
- 使用TreeSet时传入Comparator实现类(定制排序)
当自然排序和定制排序同时存在时定制排序优先于自然排序,
当一个类中经常用到某种比较方法时我们将它写为定制排序,偶尔会有特殊的排序方式,我们将它写成定制排序。