黑马程序员技术交流社区

标题: TreeSet底层数据结构是什么?如何保证元素的唯一性的呢? [打印本页]

作者: 梦想的小草    时间: 2016-9-5 11:29
标题: TreeSet底层数据结构是什么?如何保证元素的唯一性的呢?
底层数据结构是二叉树。
根据比较的返回值是否是0来决定。
        如何保证元素的排序的呢?
                A:自然排序 元素具备比较性
                        让集合中被存储的元素所属的类实现Comparable接口。
                B:比较器排序 集合具备比较性
                        在创建集合对象的时候,让构造方法接收一个Comparator接口的子类对象。

        自然排序和比较器排序的区别:
        TreeSet构造函数什么都不传, 默认按照Comparable(接口,compareTo(T))的顺序(没有实现Comparable就报错ClassCastException)
        TreeSet如果传入Comparator(接口compare(T1,T2)), 就优先按照Comparator



作者: alexander5354    时间: 2016-9-5 12:01
   A:自然排序 元素具备比较性
                        让集合中被存储的元素所属的类实现Comparable接口。
                B:比较器排序 集合具备比较性
                        在创建集合对象的时候,让构造方法接收一个Comparator接口的子类对象。

作者: a825125501    时间: 2016-9-5 18:05
底层是二叉树结构,自带有默认的比较器的,如果想修改排序方式可以自己重写比较器




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