`

TreeMap深入学习

    博客分类:
  • java
 
阅读更多
TreeMap 实现 SortedMap接口,put(K key, V value)方法在每添加一个元素时,都会自动按照键值升序排序。

TreeMap 只能根据键排序,不能根据值排序,要想根据值排序,只能自己遍历特殊处理
TreeMap 底层实现基于二叉平衡树-红黑树,具体实现请查红黑树方面知识。


构造方法:
TreeMap()
使用键的自然顺序构造一个新的、空的树映射。
TreeMap(Comparator<? super K> comparator)
构造一个新的、空的树映射,该映射根据给定比较器进行排序。
TreeMap(Map<? extends K,? extends V> m)
构造一个与给定映射具有相同映射关系的新的树映射,该映射根据其键的自然顺序 进行排序。

创建自定义的Comparator比较器:

//这里根据字符的ASCII码大小进行降序排序:
class MyComparator2 implements Comparator<String>{
@Override
public int compare(String o1, String o2) {

return o2.compareTo(o1);
}
}

在SortedSet中,当保存对象时一定要自定义一个比较器Comparator,但是在SortedMap中,保存对象却不一定要,因为SortedMap是比较Key而不是Value,所以创建的自定义比较器也是针对Key的,比如上面创建的Comparator是针对Key类型为String的Map进行排序。

Map<String, String> map = new TreeMap<String, String>(new MyComparator2());

对于TreeMap的迭代和HashMap一样,同样有三种方法,以下是常用的其中一种:

Set<Map.Entry<Integer, Integer>> set = map.entrySet();
for(Iterator<Map.Entry<Integer, Integer>> iter = set.iterator(); iter.hasNext();){
Map.Entry<Integer, Integer> entry = iter.next();
Integer key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ":" + value);
}

对于Map来说,不能使用Collections的静态方法,但是可以通过他的values方法获取到Collections进行调用:

Collection<Integer> cols = map.values();
Integer max = Collections.max(cols);
以上部分转自 http://www.itzhai.com/treemap-sortedmap-interface-implementation-class-introduction-and-implementation-of-custom-comparator-comparator.html
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java treemap 学生信息

    通过阅读和分析这个文件,你可以更深入地了解如何在实际项目中应用`TreeMap`来处理学生信息数据。 总结来说,`TreeMap`在处理学生信息时提供了有序的存储和高效的查询能力。通过键值对的形式,我们可以快速定位到...

    TreeMap源码

    在深入理解TreeMap的源码之前,我们首先要了解其背后的基石——红黑树。 红黑树(Red-Black Tree)是一种自平衡二叉查找树,它具有以下特性: 1. 每个节点要么是红色,要么是黑色。 2. 根节点是黑色。 3. 所有叶子...

    Python_TreeMap_可视化方案数据源(实现代码,请看我博客专栏《机器学习》)

    TreeMap可以通过颜色、标签、甚至动画等方式提供更丰富的视觉效果,帮助我们深入洞察数据的层次结构和分布。在机器学习中,TreeMap可以用于展示特征的重要性,或者在分类和聚类问题中可视化结果。 总之,Python的`...

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

    要深入理解这个程序,你需要查看源代码,特别是`Main`类中的主要逻辑和`Treemap`的使用方式。 总的来说,这个学生信息管理系统展示了Java在命令行环境下的实用性和灵活性,同时也涉及到数据结构(`Treemap`)和基本...

    泛型、TreeMap.rar

    Java泛型是Java SE 5.0引入的一个重要特性,它极大地增强了代码的类型安全性和重用性。泛型允许我们在定义类、接口和方法时指定一个或多个类型参数,这样...深入学习和掌握这些知识点对于提升Java编程能力至关重要。

    Java提高篇之TreeMap编程开发技术共24页.pdf

    本资料“Java提高篇之TreeMap编程开发技术共24页.pdf”深入探讨了`TreeMap`的使用技巧和开发技术,旨在帮助开发者提升在实际项目中的应用能力。 1. **TreeMap的基本概念** - `TreeMap`是一个实现了`SortedMap`接口...

    Python Matplotlib TreeMap可视化方案数据源(实现代码,请看我博客专栏《机器学习》)

    在本主题中,我们将深入探讨如何使用Matplotlib中的TreeMap功能来可视化数据。TreeMap是一种展示层次结构数据的图形方式,它通过矩形面积的大小来表示数据的量级,而矩形的嵌套结构则反映了数据的层级关系。 `...

    Treemap:树形图使用嵌套矩形的相对区域显示数据。-matlab开发

    树形图(Treemap)是一种数据可视化技术,用于表示具有层次结构的数据,通过使用嵌套矩形来展示数据的相对大小和层级关系。...通过深入学习和实践,你可以在学术研究、项目报告或数据可视化任务中充分利用这一工具。

    Java深入学习

    "Java深入学习"的主题涵盖了从基础到高级的各种Java技术,包括语法、类库、框架以及最佳实践。下面将对Java的一些核心概念和重要知识点进行详细介绍。 1. **Java语法基础**:Java的语法基于C++,但更为简洁。它包括...

    深入学习java源码-Java-Collection-Framework:java集合框架详解,这里有集合框架的深入学习并且贴出了部分重要

    在深入学习Java源码时,理解并掌握Java集合框架至关重要。这个框架包括接口、类和算法,它们使得数据结构如数组、链表、队列、栈等的使用变得简单而高效。 首先,我们来看一下集合框架的基础接口。`Collection`是...

    A Tree Map_map_tree_

    **标题与描述解析** 标题"A Tree Map_map_tree_"暗示了我们关注的核心是树形映射数据结构,更具体地,是Java中的`TreeMap`类。...综合以上,深入学习这两个文件,将能全面了解`TreeMap`在实际开发中的应用和操作技巧。

    Graph-Treemap

    开发者可以通过查看和学习这些文件,理解项目的工作原理,并根据需求进行定制或扩展。 总的来说,Graph-Treemap结合了D3.js的强大力量和Treemap的可视化优势,提供了一种高效的数据呈现方式,尤其适合展示具有层次...

    Java基础学习23.pdf

    在深入学习Map的子类时,理解它们的内部实现原理和不同特性是关键。例如,HashMap强调效率,LinkedHashMap强调顺序,而TreeMap强调有序性。根据实际需求选择合适的Map实现,可以优化程序性能并简化代码逻辑。通过...

    java集合类学习汇总

    Java集合类是Java编程语言中用于存储对象的重要工具,它们提供了灵活的数据组织方式,使得开发者可以高效地管理和操作数据。...通过深入学习和实践,我们可以提高代码的效率和可维护性,更好地应对各种编程挑战。

    Android-jdk源码阅读

    在Android开发过程中,深入理解Java库的源代码对于优化应用性能和解决复杂问题...通过深入研究源代码,开发者不仅可以更好地理解`TreeMap`的工作机制,还可以学习如何在自己的代码中更高效地使用它,从而优化应用性能。

    java集合使用实例

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的实现,使得在处理各种数据存储和操作时更加高效。...通过实践提供的实例,我们可以深入学习这些集合类的使用,并在具体项目中灵活应用。

    Java基础学习24.pdf

    Java编程语言的基础学习是成为Java开发者的必要步骤,其中对数据结构的理解至关重要,特别是Map接口的实现类。本文将深入探讨Java中Map的几...通过不断的实践和深入学习,你将能够更快地在Java开发领域找到自己的位置。

    java数据结构全套

    《Java数据结构全套》是针对Java编程语言深入学习数据结构的重要资源集合,涵盖了从基本概念到高级应用的全面知识体系。这个压缩包包含了四部分关键内容:叶核亚编著的《数据结构(Java版)(第3版)》电子教案、...

    JCF(List、Set、Map)学习,实现了<key,value>按value排序噢

    标题中提到的“JCF(List、Set、Map)学习,实现了,value&gt;按value排序”是一个关键点,我们将深入探讨这个话题。 首先,让我们了解List、Set和Map的区别。List是有序的集合,允许重复元素,并且可以保持插入顺序;Set...

    java _Tree.rar

    Java中的Tree数据结构详解 在Java编程语言中,树是一种非常重要的非线性数据结构,它模拟了自然界中的树状结构。...通过深入学习和实践,开发者可以更好地利用这些数据结构优化程序的性能和逻辑。

Global site tag (gtag.js) - Google Analytics