`
darrenzhu
  • 浏览: 802590 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

TreeMap与自然排序(natural ordering)

    博客分类:
  • Java
阅读更多
java.lang.Comparable<T>

This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class's natural ordering, and the class's compareTo method is referred to as its natural comparison method.

Lists (and arrays) of objects that implement this interface can be sorted automatically by Collections.sort (and Arrays.sort). Objects that implement this interface can be used as keys in a sorted map or as elements in a sorted set, without the need to specify a comparator.

The natural ordering for a class C is said to be consistent with equals if and only if e1.compareTo(e2) == 0 has the same boolean value as e1.equals(e2) for every e1 and e2 of class C. Note that null is not an instance of any class, and e.compareTo(null) should throw a NullPointerException even though e.equals(null) returns false.

It is strongly recommended (though not required) that natural orderings be consistent with equals. This is so because sorted sets (and sorted maps) without explicit comparators behave "strangely" when they are used with elements (or keys) whose natural ordering is inconsistent with equals. In particular, such a sorted set (or sorted map) violates the general contract for set (or map), which is defined in terms of the equals method.

For example, if one adds two keys a and b such that (!a.equals(b) && a.compareTo(b) == 0) to a sorted set that does not use an explicit comparator, the second add operation returns false (and the size of the sorted set does not increase) because a and b are equivalent from the sorted set's perspective.

分享到:
评论

相关推荐

    TreeMap按VALUE排序

    TreeMap按VALUE排序

    java 中 TreeMap排序

    在Java编程语言中,`TreeMap`是一种基于红黑树数据结构实现的键值对容器,与`HashMap`不同,`TreeMap`自动按照键的自然顺序或者自定义的比较器进行排序。当我们需要存储的数据有特定的排序需求时,`TreeMap`便成为一...

    List和Treemap排序实例及效率对比

    本资源提供了List对对象中的属性和TreeMap, String&gt;对键值排序,并针对100w条数据排序,对比List和TreeMap, String&gt;排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...

    Java TreeMap排序算法实例

    在本文中,我们将通过实例形式来介绍Java TreeMap排序算法的原理、实现方法与相关注意事项。 1. 对于一些简单的排序,如数字、英文字母等,可以使用Comparator接口来实现自定义的排序规则。例如: ```java TreeMap,...

    JAVA使用TreeMap对字符串进行排序

    JAVA使用TreeMap对字符串进行排序 JAVA中TreeMap是一种基于红黑树的实现,能够自动对key进行排序。下面将详细介绍如何使用TreeMap对字符串进行排序。 首先,需要了解TreeMap的特点。TreeMap是一种基于红黑树的实现...

    浅谈java中的TreeMap 排序与TreeSet 排序

    与 `TreeMap` 不同,`TreeSet` 的元素是无序的,但它们是按照元素的自然顺序或者自定义的比较器进行排序的。在第二个示例中,创建了一个 `TreeSet` 并传入了一个自定义的 `Comparator`,这个比较器用于比较 `Object`...

    Treemap-4.1.2

    8. **特性和性能**:与HashMap相比,TreeMap的插入和查找速度较慢,但由于其有序性,对于需要保持数据排序的应用来说,TreeMap是一个更好的选择。在内存使用方面,由于需要存储额外的排序信息,TreeMap通常比HashMap...

    java中TreeMap排序的示例代码

    TreeMap 是一个有序的 Map 集合,它可以根据键的自然顺序或自定义的比较器进行排序。 TreeMap 排序的优点 1. 高效排序:TreeMap 使用红黑树数据结构来存储数据,因此它可以快速地插入、删除和查找数据。 2. 自定义...

    TreeMap源码

    - 按自然顺序排序:如果键实现了Comparable接口,TreeMap将按自然顺序排序。 - 自定义排序:用户可以通过提供自定义的Comparator对象来指定排序规则。 - keySet(),values()和entrySet():这三种方法分别返回TreeMap...

    java用treemap统计单词出现的个数

    Java TreeMap是一个有序的Map实现,它可以根据对象的自然顺序或自定义的比较器对键进行排序。在本例中,我们使用TreeMap来统计一个句子或一个段落中单词出现的次数,并按照字母表顺序输出。 知识点1:Java TreeMap...

    java treemap 学生信息

    `TreeMap`按照键的自然顺序或自定义比较器的顺序来排序键。在这里,我们可以使用学生的姓名作为键,因为姓名通常是唯一的,且方便比较。例如: ```java Map, Integer&gt; studentScores = new TreeMap(); ...

    vue_echarts_treemap.zip

    综上所述,"vue_echarts_treemap.zip"提供的示例涵盖了 Vue 2.x 与 ECharts 的集成、TreeMap 图表的创建和配置,以及在对话框中的应用。通过学习和理解这个示例,你可以掌握如何在 Vue 应用中有效地展示和操作层次...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    - **键排序**:所有键都会根据其自然排序或提供的比较器进行排序。 - **有序性**:`TreeMap`可以按键的自然顺序或用户定义的顺序返回元素。 - **性能**:尽管`TreeMap`提供排序功能,但它的时间复杂度通常是O(log...

    对Map按key和value分别排序

    其中,TreeMap 是基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。使用 TreeMap 可以轻松实现 ...

    C# Treemap Sunburst算法

    **C# TreeMap与Sunburst算法详解** 在信息可视化领域,数据的呈现方式至关重要,它能够帮助我们更好地理解和分析复杂的数据结构。C#编程语言提供了多种工具和库来实现这一目标,其中Treemap和Sunburst是两种非常...

    TreeMap in Java_java_treemap_

    1. **排序**:默认情况下,`TreeMap`按照键的自然顺序进行排序,即键必须实现`Comparable`接口。如果键是自定义对象,需要重写`compareTo()`方法来定义排序规则。另外,可以通过传入自定义的`Comparator`给构造函数...

    java编写的命令行学生信息管理程序(用treemap)

    这个程序基于`Treemap`数据结构,这是一种在Java中由`java.util.TreeMap`类提供的有序映射,它允许以键值对的形式存储数据,并且能保持键的自然排序或者自定义排序。 `Treemap`的主要特点: 1. **有序性**:`...

    treemap treeset hashset hashmap 简要介绍

    由于`TreeMap`内部维护了一个红黑树,因此它的键值对是按照键的自然顺序或自定义排序顺序排列的,这使得`TreeMap`非常适合需要保持键有序的场景。 ### TreeSet `TreeSet`是基于`TreeMap`实现的一个Set(集合)实现...

    557.555.JAVA基础教程_集合-TreeMap两种添加方式的使用(557).rar

    与HashMap不同,TreeMap会自动根据Key的自然顺序或者自定义比较器进行排序。 二、添加元素:put()方法 1. put()方法的基本使用:`treeMap.put(key, value)`,将指定的键值对添加到TreeMap中。如果TreeMap中已经存在...

Global site tag (gtag.js) - Google Analytics