- 浏览: 188285 次
- 性别:
- 来自: 上海
文章分类
最新评论
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
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
发表评论
文章已被作者锁定,不允许评论。
-
ReentrantLock与Condition
2017-03-17 14:25 526多线程和并发性并不是什么新内容,但是 Java 语言设计中的创 ... -
java linux监控
2017-03-13 17:49 483http://agapple.iteye.com/blog/1 ... -
transient和volatile两个关键字
2017-02-16 09:47 572transient和volatile两个关 ... -
java 锁机制
2016-12-09 13:43 465一段synchronized的代码被 ... -
java 正则表达式
2016-12-02 10:28 516众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字 ... -
java ClassNotFoundException和NoClassDefFoundException的差别
2016-08-17 19:47 907首先从名字上可以看出一类是异常,一类属于错误。异常可以通过异常 ... -
ThreadLocal
2016-07-19 11:10 326ThreadLocal是什么 Thre ... -
java CAS
2016-07-10 14:55 333cas 乐观锁每次不锁定整个线程,在操作之前进行判断。悲观锁独 ... -
concurrenthashmap
2016-07-10 11:11 422hash table虽然性能上不如 ... -
java 线程池的使用
2016-07-10 09:52 3721. 引言 合理利用线程池能够带来三个好处。第一:降低资源消 ... -
java.util.concurrent
2016-07-03 16:24 409我们都知道,在JDK1.5之 ... -
JVM 配置 以及垃圾收集器的选择
2016-04-15 12:36 728JVM监控的关键指标说明: a) FGC的环比增加次数。Zab ... -
jvm实时监控工具
2016-04-09 09:35 461 -
哈希 、一致性哈希、余数式哈希
2016-04-07 16:10 861什么是Hash Hash,一 ... -
jvm dump 相关
2016-03-22 17:22 681http://www.cnblogs.com/edwardla ... -
深入剖析volatile关键字
2016-03-21 16:02 534深入剖析volatile关键字 ... -
java线程安全问题之静态变量、实例变量、局部变量
2016-03-08 12:52 571java多线程编程中,存在很多线程安全问题,至于什么是线程安全 ... -
有状态的bean和无状态的bean的区别
2016-03-08 11:23 1493有状态会话bean :每个用户有自己特有的一个实例,在用户的生 ... -
Java nio详解
2016-01-20 16:30 551http://www.ibm.com/developerwor ... -
java 不定长数组
2015-11-24 15:00 768在调用某个方法时,若是方法的参数个数事先无法确定该如何处理 ...
相关推荐
通过阅读和分析这个文件,你可以更深入地了解如何在实际项目中应用`TreeMap`来处理学生信息数据。 总结来说,`TreeMap`在处理学生信息时提供了有序的存储和高效的查询能力。通过键值对的形式,我们可以快速定位到...
在深入理解TreeMap的源码之前,我们首先要了解其背后的基石——红黑树。 红黑树(Red-Black Tree)是一种自平衡二叉查找树,它具有以下特性: 1. 每个节点要么是红色,要么是黑色。 2. 根节点是黑色。 3. 所有叶子...
TreeMap可以通过颜色、标签、甚至动画等方式提供更丰富的视觉效果,帮助我们深入洞察数据的层次结构和分布。在机器学习中,TreeMap可以用于展示特征的重要性,或者在分类和聚类问题中可视化结果。 总之,Python的`...
要深入理解这个程序,你需要查看源代码,特别是`Main`类中的主要逻辑和`Treemap`的使用方式。 总的来说,这个学生信息管理系统展示了Java在命令行环境下的实用性和灵活性,同时也涉及到数据结构(`Treemap`)和基本...
Java泛型是Java SE 5.0引入的一个重要特性,它极大地增强了代码的类型安全性和重用性。泛型允许我们在定义类、接口和方法时指定一个或多个类型参数,这样...深入学习和掌握这些知识点对于提升Java编程能力至关重要。
本资料“Java提高篇之TreeMap编程开发技术共24页.pdf”深入探讨了`TreeMap`的使用技巧和开发技术,旨在帮助开发者提升在实际项目中的应用能力。 1. **TreeMap的基本概念** - `TreeMap`是一个实现了`SortedMap`接口...
在本主题中,我们将深入探讨如何使用Matplotlib中的TreeMap功能来可视化数据。TreeMap是一种展示层次结构数据的图形方式,它通过矩形面积的大小来表示数据的量级,而矩形的嵌套结构则反映了数据的层级关系。 `...
树形图(Treemap)是一种数据可视化技术,用于表示具有层次结构的数据,通过使用嵌套矩形来展示数据的相对大小和层级关系。...通过深入学习和实践,你可以在学术研究、项目报告或数据可视化任务中充分利用这一工具。
"Java深入学习"的主题涵盖了从基础到高级的各种Java技术,包括语法、类库、框架以及最佳实践。下面将对Java的一些核心概念和重要知识点进行详细介绍。 1. **Java语法基础**:Java的语法基于C++,但更为简洁。它包括...
在深入学习Java源码时,理解并掌握Java集合框架至关重要。这个框架包括接口、类和算法,它们使得数据结构如数组、链表、队列、栈等的使用变得简单而高效。 首先,我们来看一下集合框架的基础接口。`Collection`是...
**标题与描述解析** 标题"A Tree Map_map_tree_"暗示了我们关注的核心是树形映射数据结构,更具体地,是Java中的`TreeMap`类。...综合以上,深入学习这两个文件,将能全面了解`TreeMap`在实际开发中的应用和操作技巧。
开发者可以通过查看和学习这些文件,理解项目的工作原理,并根据需求进行定制或扩展。 总的来说,Graph-Treemap结合了D3.js的强大力量和Treemap的可视化优势,提供了一种高效的数据呈现方式,尤其适合展示具有层次...
在深入学习Map的子类时,理解它们的内部实现原理和不同特性是关键。例如,HashMap强调效率,LinkedHashMap强调顺序,而TreeMap强调有序性。根据实际需求选择合适的Map实现,可以优化程序性能并简化代码逻辑。通过...
Java集合类是Java编程语言中用于存储对象的重要工具,它们提供了灵活的数据组织方式,使得开发者可以高效地管理和操作数据。...通过深入学习和实践,我们可以提高代码的效率和可维护性,更好地应对各种编程挑战。
在Android开发过程中,深入理解Java库的源代码对于优化应用性能和解决复杂问题...通过深入研究源代码,开发者不仅可以更好地理解`TreeMap`的工作机制,还可以学习如何在自己的代码中更高效地使用它,从而优化应用性能。
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的实现,使得在处理各种数据存储和操作时更加高效。...通过实践提供的实例,我们可以深入学习这些集合类的使用,并在具体项目中灵活应用。
Java编程语言的基础学习是成为Java开发者的必要步骤,其中对数据结构的理解至关重要,特别是Map接口的实现类。本文将深入探讨Java中Map的几...通过不断的实践和深入学习,你将能够更快地在Java开发领域找到自己的位置。
《Java数据结构全套》是针对Java编程语言深入学习数据结构的重要资源集合,涵盖了从基本概念到高级应用的全面知识体系。这个压缩包包含了四部分关键内容:叶核亚编著的《数据结构(Java版)(第3版)》电子教案、...
标题中提到的“JCF(List、Set、Map)学习,实现了,value>按value排序”是一个关键点,我们将深入探讨这个话题。 首先,让我们了解List、Set和Map的区别。List是有序的集合,允许重复元素,并且可以保持插入顺序;Set...
Java中的Tree数据结构详解 在Java编程语言中,树是一种非常重要的非线性数据结构,它模拟了自然界中的树状结构。...通过深入学习和实践,开发者可以更好地利用这些数据结构优化程序的性能和逻辑。