Set 无序,元素不可重复
1. HashSet 数据类型是哈希表,线程不同步
保证元素唯一性的原理:判断元素的HashCode值是否相同。
如果相同还会继续判断元素的equals方法 是否为ture
2. TreeSet 底层数据结构是二叉树
保证数据唯一性的原理:
实现Comparable接口,覆盖Compareto方法
当return 0 时,就会判断两个元素相同 不会让后一个元素进入集合中
所以在建立自定义的对象的时候,重写CompareTo方法时要在主要判断元素相同的情况下判别次要条件。
TreeSet排序的第一种方法:
让元素自身具备比较性:
元素需要实现Comparable接口,复写CompareTo方法,这种方法也称为元素的自然顺序或者叫默认顺序(比如字符串、int类型的数据,本身就具备比较器的方法(在String类中就已经实现Comparable接口 ))
TreeSet排序的第二种方法:
让集合具备比较性:
定义一个比较器类(实现Comparator接口,复写其compare方法),把比较器对象作为参数传入TreeSet集合的构造函数中,当两种方法都存在的时候,以比较器为主。
|
|