黑马程序员技术交流社区
标题:
TreeSet集合保证元素唯一性和自然排序的原理和图解
[打印本页]
作者:
ulddfhv
时间:
2015-4-17 23:05
标题:
TreeSet集合保证元素唯一性和自然排序的原理和图解
源代码分析 :
1. 当装入第一个元素时,因为集合中没有其它元素,那么它就是根
2. 所有元素在装入时,如果是小的一直放在左边,大的放在右边,相等的不装入。
问题:怎样比较的集合中的元素?
在源代码中有:
Comparator------比较器
Comparable----- 自然顺序
什么是自然顺序?
实现了Comparable接口的类就具有了自然顺序,它比较时是通过接口中要重写的方法compareTo来完成的,这个方法返回的是int类型的值,0代表的是等于,负数代表的是小于,正数代表的是大于.
比较器:在创建TreeSet时指定一个比较器
比较器就是实现了Comparator接口的一个类,那么这个类需要重写接口中一个方法compare,这个方法返回的是int类型值,它的原理与compareTo方法一样。
对于TreeSet集合,它的元素必须具有自然顺序或者指定比较器,才可以装入到TreeSet集合中。
基于 TreeMap 的 NavigableSet 实现。
使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,
具体取决于使用的构造方法。
TreeSet保证元素唯一以及排序:
1. new TreeSet();----在TreeSet底层使用的是一个NavigableMap
2. 当调用put方法是,我们通过源代码连接时,是链接到Map接口,接口中没有具有的方法实现,这时我们就可以在Map接口中查找它的实现类 NavigableMap接口。
3. 在NavigableMap这个接口中也没有put方法实现,那么在看这个接口的实现类,
TreeMap中有put方法实现
123456.png
(98.16 KB, 下载次数: 2)
下载附件
2015-4-17 23:05 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2