深圳建站公司 方网站,电子网站搜索引擎怎么做,网站开发电销常遇到问题,大连金普新区规划建设局网站TreeSet() 是使用二叉树的原理对新 add() 的对象按照指定的顺序排序#xff08;升序、降序#xff09;#xff0c;每增加一个对象都会进行排序#xff0c;将对象插入的二叉树指定的位置#xff1b; ~ 本篇内容包括#xff1a;TreeSet 概述、TreeSet 的使用以及其他知识点… TreeSet() 是使用二叉树的原理对新 add() 的对象按照指定的顺序排序升序、降序每增加一个对象都会进行排序将对象插入的二叉树指定的位置 ~ 本篇内容包括TreeSet 概述、TreeSet 的使用以及其他知识点 文章目录一、TreeSet 概述二、TreeSet 的使用1、构造方法2、常用方法三、其他知识点1、关于 HashSet、LinkedHashSet 和 TreeSet 的区别2、关于 红黑树的特点3、关于 TreeSet 和 TreeMap 的区别一、TreeSet 概述
TreeSet() 是使用二叉树的原理对新 add() 的对象按照指定的顺序排序升序、降序每增加一个对象都会进行排序将对象插入的二叉树指定的位置
Integer 和 String 对象都可以进行默认的 TreeSet 排序而自定义类的对象是不可以的自己定义的类必须实现 Comparable 接口并且覆写相应的 compareTo() 函数才可以正常使用在覆写 compare() 函数时要返回相应的值才能使 TreeSet 按照一定的规则来排序
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象则分别返回负整数、零或正整数
TreeSet 的作用是保存无重复的数据不过还对这些数据进行了排序。TreeMap 的底层是通过红黑树实现的所以 TreeSet 底层也是通过红黑树实现的。TreeSet 最主要的特点就是对元素进行了排序。其特点如下
TreeSet 是基于 TreeMap 的 NavigableSet 实现TreeSet 的元素存储在 TreeMap 中的 key 中TreeMap 的 value 是一个常量对象非线程安全java8 新增分割器 spliterator() 方法 二、TreeSet 的使用
1、构造方法
方法名方法说明方法名方法说明public TreeSet()无参构造方法完成 map 的创建public TreeSet(Comparator? super E comparator)构造TreeSet根据指定的比较器进行排序public TreeSet(Collection? extends E c)构造一个包含指定集合中的元素的TreeSet根据其元素的自然排序进行比较public TreeSet(SortedSetE s)构造TreeSet并使用与指定排序集相同的顺序
2、常用方法
方法名方法说明方法名方法说明boolean add(E e)添加一个元素如果该元素已经存在则返回true如果不存在则返回falseboolean addAll(Collection? extends E c)添加一个包含指定元素的集合boolean remove(Object o)hashSet的迭代器void clear()获得大小NavigableSetE headSet(E toElement, boolean inclusive)返回子 SetNavigableSetE tailSet(E fromElement, boolean inclusive)返回Set的尾部范围是从fromElement到结尾。E first()返回Set的第一个元素E last()返回Set的最后一个元素E lower(E e)返回Set中小于e的最大元素E floor(E e)返回Set中小于/等于e的最大元素E ceiling(E e)返回Set中大于/等于e的最小元素E higher(E e)返回Set中大于e的最小元素E pollFirst()获取第一个元素并将该元素从TreeMap中删除E pollLast()获取最后一个元素并将该元素从TreeMap中删除void writeObject(java.io.ObjectOutputStream s)将TreeSet的“比较器、容量所有的元素值”都写入到输出流中void readObject(java.io.ObjectInputStreams)从输入流中读取TreeSet的“比较器、容量所有的元素值”三、其他知识点
1、关于 HashSet、LinkedHashSet 和 TreeSet 的区别
HashSet 是 Set 接口的主要实现类 HashSet 的底层是 HashMap线程不安全的可以存储 null 值LinkedHashSet 是 HashSet 的子类能够按照添加的顺序遍历TreeSet 底层使用红黑树能够按照添加元素的顺序进行遍历排序的方式可以自定义。
2、关于 红黑树的特点
性质 1每个节点要么是红色要么是黑色。性质 2根节点永远是黑色的。性质 3所有的叶节点都是空节点即 null并且是黑色的。性质 4每个红色节点的两个子节点都是黑色。从每个叶子到根的路径上不会有两个连续的红色节点性质 5从任一节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点。
3、关于 TreeSet 和 TreeMap 的区别
TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员其中 TreeMap 是 Map 接口的常用实现类而 TreeSet 是 Set 接口的常用实现类。虽然 TreeMap 和TreeSet 实现的接口规范不同但 TreeSet 底层是通过 TreeMap 来实现的如同HashSet底层是是通过HashMap来实现的一样因此二者的实现方式完全一样。而 TreeMap 的实现就是红黑树算法
不同点
最主要的区别就是 TreeSet 和 TreeMap 分别实现 Set 和 Map 接口TreeSet 只存储一个对象而 TreeMap存 储两个对象 Key 和 Value仅仅key对象有序TreeSet 中不能有重复对象而 TreeMap 中可以存在TreeMap 的底层采用红黑树的实现完成数据有序的插入排序。