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