set集合

set接口

set接口体系.png

hashSet

底层hashMap支持,不保证迭代顺序。

linkedHashSet

底层由 hashMap和linked List 共同维护, 元素不可重复,并且保证迭代顺序。

TreeSet

实现sortedSet接口, 支持对元素的排序,
sortedSet支持Comparator接口。

-请注意,如果要正确实现Set接口,则由set维护的排序(无论是否提供显式比较器)必须与equals一致。 (请参阅Comparable或Comparator以获得与equals一致的精确定义。)这是因为Set接口是根据equals操作定义的,但TreeSet实例使用compareTo(或compare)方法执行所有元素比较,因此 从该集合的角度来看,通过这种方法被认为相等的元素是相等的。 集合的行为即使其排序与equals不一致也是明确定义的; 它只是不遵守Set接口的一般合同。

Comparator参与的sortedSet, 当Comparator的compare方法返回元素相等, 则认为元素重复, 不可插入

set集合判定两个元素是否一致是通过equals方法,而equals方法底层走的是hashcode, 还是hash算法。

你可能感兴趣的:(set集合)