黑马程序员技术交流社区
标题:
HashSet与TreeSet集合保持唯一性的标准
[打印本页]
作者:
xiexie758
时间:
2015-11-1 14:49
标题:
HashSet与TreeSet集合保持唯一性的标准
HashSet:
底层数据结构是哈希表(散列表)。具体的是由一个元素是单向链表的数组组成。
它依赖于两个方法:hashCode()和equals()方法。
执行顺序:
先判断hashCode()是否相同,
如果相同
继承执行equals()方法,看其返回值:
true:元素重复,不存储。
false:元素不重复,存储。
如果不同
存储。
记住:
看到HashXxx结构的集合,就要知道,被该集合存储的元素要重写hashCode()和equals()方法。
而且,是自动生成的。
TreeSet;
底层数据结构是二叉树。
根据比较的返回值是否是0来决定。
如何保证元素的排序的呢?
A:自然排序 元素具备比较性
让集合中被存储的元素所属的类实现Comparable接口复写compareTo()方法。
B:比较器排序 集合具备比较性
在创建集合对象的时候,让构造方法接收一个Comparator接口的子类对象,子类复写compare()方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2