首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java集合框架-TreeSet

    介绍TreeSet是Java集合框架中实现了SortedSet接口的有序集合。它是基于红黑树(Red-Black Tree)实现的,能够自动进行元素的排序,且具有很高的查找效率。...与HashSet不同,TreeSet中的元素是按照其自然顺序排序的,或者根据构造函数中提供的Comparator排序。...orange");System.out.println(set); // 输出结果:[apple, banana, orange]在这个示例中,我们首先创建了一个TreeSet,然后向其中添加了三个字符串元素...添加和删除元素TreeSet提供了add()和remove()方法来添加和删除元素,它们的语法和用法与HashSet和LinkedHashSet中的相同,不再赘述。...其中:first()方法返回TreeSet中的第一个(最小的)元素。last()方法返回TreeSet中的最后一个(最大的)元素。

    45810

    java中的排序--排序容器_TreeSet与TreeMap

    TreeSet数据排序两种方式: 注意:TreeSet是在添加数据时进行排序,数据更改不会影响原来的顺序,因此不能修改类中数据,否则可能重复。...1)、若选用无参的new TreeSet()构造器,需要元素本身可以排序方能使用,也即实体类实现java.lang.Comparable接口重写compareTo接口。  ...()构造器 package top.wfaceboss.caseSort02; import java.util.TreeSet; public class TreeSetDemo { public...super E> comparator)构造器--提供额外的业务排序类(匿名内部类的方式) package top.wfaceboss.caseSort; import java.util.TreeSet...容器中 // 由于Person类没有实现java.lang.Comparable重写compareTo接口 ,因此需要提供额外的业务排序类,否则会出错 TreeSet<

    2.1K30

    java进阶|TreeSet源码分析

    )键值对集合,但是写到这里我还没有分析TreeMap的源码,但是这不影响我的分析,因为我已经分析完TreeSet集合的源码,整个的过程中没有阻塞性,所以分析TreeSet集合继续了。...java这门语言没有一个很高的把握,但是工作中的内容还是可以的,那个时候自己都写了java8的写法,但是时过两年后自己才去输出和分享了java8的文章,所以觉得自己想写的文章是不是拖延了很久,读过我的文章读者的就知道...接下来分析一下TreeSet集合中的first()方法,也就是获取TreeSet集合中第一个元素的方法,这个方法见到的很少,所以这里就分析一下。...null) throw new NoSuchElementException(); return e.key;//返回获取到的entry节点的key,这就是set集合中的元素...= null)//循环判断根节点的右自述节点是否为空,若不为空则循环判断 p = p.right; return p; } 继续分析TreeSet集合中如何获取元素个数的方法

    59120

    【JAVA-Day52】深度解析 Java TreeSet 集合

    ⌨ 深度解析 Java TreeSet 集合 摘要 博主在本篇文章中将深入解析Java中的TreeSet集合,探讨其特性、应用场景以及性能优化。...通过多级标题结构,将引领读者从初步认识TreeSet到最佳实践,最终挑战高质量的面试题,全方位、深度解析TreeSet在Java中的应用。...引言 在Java的集合框架中,TreeSet是一种基于红黑树实现的有序集合。本文将带领读者逐步深入,从基础概念到实际应用,全面解析TreeSet集合的特点和使用方法。...一、初探 TreeSet TreeSet是Java集合框架中的一种有序集合,它使用红黑树作为内部数据结构来存储元素。...下面是关于TreeSet的一些补充信息: 1.1 什么是Java集合类TreeSet? TreeSet是Java中的一个集合类,它继承了AbstractSet类并实现了NavigableSet接口。

    36910

    Java集合:关于 TreeSet 的内容盘点

    其特点如下: TreeSet 是基于 TreeMap 的 NavigableSet 实现; TreeSet 的元素存储在 TreeMap 中的 key 中,TreeMap 的 value 是一个常量对象...; 非线程安全; java8 新增分割器 spliterator() 方法 ---- 二、TreeSet 的使用 1、构造方法 方法名 方法说明 方法名 方法说明 public TreeSet() 无参构造方法...E pollLast() 获取最后一个元素,并将该元素从TreeMap中删除 void writeObject(java.io.ObjectOutputStream s) 将TreeSet的“比较器、...容量,所有的元素值”都写入到输出流中 void readObject(java.io.ObjectInputStreams) 从输入流中读取TreeSet的“比较器、容量,所有的元素值” ---- 三...3、关于 TreeSet 和 TreeMap 的区别 TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类

    1.4K10

    TreeSet集合解析

    : com.kevin.exercise10.User cannot be cast to java.lang.Comparable at java.util.TreeMap.put(TreeMap.java...:542) at java.util.TreeSet.add(TreeSet.java:238) at com.kevin.exercise10.TreeSetTest.main(TreeSetTest.java...(1)自然顺序(Comparable) TreeSet类的add()方法中会把存入的对象提升为Comparable类型 调用对象的compareTo()方法和集合中的对象比较 根据compareTo...()方法返回的结果进行存储 (2)比较器顺序(Comparator) 创建TreeSet的时候可以指定一个Comparator 如果传入了Comparator的子类对象,那么TreeSet就会按照比较器中的顺序排序...调用的对象是compare方法的第一个参数,集合中的对象是compare方法的第二个参数 (3)两种方式的区别 TreeSet构造函数什么都不传,默认按照类中Comparable的顺序(没有就报错

    90420

    Java集合框架(二)—— HashSet、LinkedHashSet、TreeSet和EnumSet

    HashSet类   HashSet具有以下特点: HashSet具有很好的对象检索性能,当从HashSet中查找某个对象时,Java系统首先调用对象的hashCode方法获得该对象的哈希码,然后根据哈希码找到对应的存储区域...Object first();   //第一个;返回集合中的第一个元素。 Object last();   //最后一个;返回集合中的最后一个元素。...Object lower(Object o);    //前一个;返回集合中位于指定元素之前的元素(即小于指定元素的最大元素,参考元素不需要是TreeSet的元素)。 ...Object higher(Object o);  //后一个;返回集合中位于指定元素之后的元素(即大于指定元素的最小元素,参考元素不需要是TreeSet的元素)。...所以当我们把Person对象添加到persons集合中时,无须Person类实现Comparable接口,因为此时TreeSet无须通过Person对象来比较大小,而是由与TreeSet关联的Compartor

    1.5K90

    TreeSet源码解析

    在这一篇中我们主要分享一下TreeSet集合的相关知识。在上一篇中我们介绍了HashSet集合的底层实现,并且发现HashSet底层是通过HashMap集合实现的。...那么顾名思义今天我们介绍的TreeSet集合,底层就是通过TreeMap集合实现的。那么废话不多说,我们直接看TreeSet的初始化代码。 初始化 ?...下面我们看一下TreeSet集合中的add方法的底层实现。 ? HashSet中的add方法的实现逻辑基本和HashSet中的实现逻辑一样。都是直接调用了底层Map的实现类。...也就是调用TreeMap中的put方法,并且将value值设置为Object。...既然TreeSet底层是通过TreeMap实现的,那么我们很容易可以总结出TreeSet具有以下的特性: 总结 保存在TreeSet集合中的元素,必须保证能够排序 TreeSet集合中不能保存null

    58020

    Java 容器 & 泛型:三、HashSet,TreeSet 和 LinkedHashSet比较

    泥瓦匠的记忆宫殿: 1、不允许包含相同元素 2、判断对象是否相同,根据 equals 方法 二、HashSet 一个按着 Hash 算法来存储集合中的元素,其元素值可以是 NULL。...HashSetObj 类满足我们刚刚的要求,所以集合中只有一个且它的HashCode值为2。 HashCodeObj 类虽然它们HashCode值为 1,但是他们不相等。...四、TreeSet TreeSet 使用树结构实现(红黑树),集合中的元素进行排序,但是添加、删除和包含的算法复杂度为 O(log(n))。...举个例子吧,首先我们定义一个 Bird 类:(鸟是泥瓦匠最喜欢的动物) 然后用TreeSet添加Bird类: Run 一下,控制台输出如下: 答案很明显,TreeSet 是排序的。...java.lang.Comparable 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。

    31940

    详解 TreeMap 和 TreeSet

    认识 TreeMap 和 TreeSet TreeMap 和 TreeSet 是Java 中利用红黑树实现的 Map 和 Set。...传入 Map 的构造方法 调用此构造方法将会新建一个 TreeMap,并且将传入的 Map 中的元素全部放入新建的 TreeMap 当中。 所有传入的 Key 必须实现 Comparable接口。...传入一个带比较器的 Map 的构造方法 将传入的 Map 中的元素全部放入新建的 TreeMap 中,并且使用 Map 中的比较器进行比较。...TreeSet TreeSet 只存储 Key,是一种纯Key 模型。它的底层其实是 TreeMap,结构也是二叉搜索树。 构造方法 1....无参构造方法 由于 TreeSet 的底层是 TreeMap(前面文章已讲过),因此,TreeSet 的底层结构也是二叉搜索树,也就意味着放入 TreeSet 中的元素必须是可比较的(即实现了 Comparable

    13810
    领券