Set:元素不可以重复,是无序的
Set接口中的方法和Collection一致
HashSet:内部结构数据是哈希表,是不同步的
哈希表确定元素是否相同
1.判断的是两个元素的哈希值是否相同。
如果相同,再判断两个对象的内容是否相同
2.判断哈希值相同,其实判断的是对象的hashCode方法。判断内容相同,用的是equals方法。
注意:如果哈希值不同,则不需要判断equals
TreeSet:可以对Set集合中的元素进行排序,是不同步的
判断元素唯一性的方式:就是根据比较方法的返回结果是否是0,是0就是相同元素,就不存
TreeSet对元素进行排序的方式一:
让元素自身具备比较功能,就需要实现Comparable接口,覆盖compareTo方法
如果不要按照对象中具备的自然顺序排序,或者 如果对象中不具备自然顺序,怎么办?
可以使用TreeSet集合的第二种排序方式:
让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法,
将该类对象作为参数传递给TreeSet集合的构造函数 |
|