黑马程序员技术交流社区

标题: TreeSet存储原理 [打印本页]

作者: jiangkaizhuo    时间: 2016-4-10 23:58
标题: TreeSet存储原理
TreeSet存储元素对元素进行排序的源码解析:
                        TreeSet在存储元素的时候 会首先去判断是否有比较器存在(也就是判断比较器是否为null)
                                如果存在:
                                        就会让比较器去调用compare(T t1, T t2)方法,去依次比较即将存入的值和已经存入TreeSet集合的值
                                                如果返回正数:往二叉树右侧放
                                                如果返回负数:往二叉树左侧放
                                                如果返回 0 :不添加
                               
                                如果不存在:底层就会把即将存入的元素 自动提升为Comparable类型的对象(所以如果没有比较器的情况下,
                                        元素所在的类没有实现Comparable接口,在做自动提升类型的时候就会报类型转换错误),
                                        并让该对象调用CompareTo(T t)方法,和已经存入TreeSet集合的元素依次比较
                                                如果返回正数:往二叉树右侧放
                                                如果返回负数:往二叉树左侧放
                                                如果返回 0 :不添加




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2