本帖最后由 @夏一 于 2016-1-16 11:54 编辑
TreeSet和HashSet均具有存取顺序无序,元素唯一的特点.-----------------------------------------------------
TreeSet:
底层数据结构是依靠红黑树(二叉树),即在比较时,比root小的放左边,比root大的放右边.相等的,不放.
为保证元素排序,要让元素所属的类实现Comparable接口,或者让集合构造方法接受Comparator的实现类对象.----------------------------------------------------
HashSet:
底层数据结构是哈希表(是一个元素为链表的数组).
在使用HashSet存储自定义对象数据时,为保证元素的唯一,必须重写hashCode()和equals()方法.
执行顺序:
先通过hashCode()计算比较哈希值,相同,再用equals()比较内容,再相同,就不存了.
|