- 浏览: 1112889 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
使用 java.util.TreeMap 类
TreeMap 类不仅实现了 Map 接口,还实现了 Map 接口的子接口 java.util.SortedMap。
TreeMap 类中不允许键对象为 null 或是 基本数据类型,这是因为 TreeMap 中的对象必须是可排序的(即对象需要实现 java.lang.Comparable 接口)
TreeMap 类通过实现 SortedMap 接口得到的方法如表1所示:
表1 TreeMap类通过实现java.util.SortedMap接口得到的方法
在创建 TreeMap 对象时,如果使用参数为空的构造方法,则根据 Map 对象的 key 进行排序;如果使用参数为 Comparator 的构造方法,则根据 Comparator 进行排序。
HashMap VS. TreeMap
在添加、删除和定位映射关系上,TreeMap类要比HashMap类的性能差一些,但是其中的映射关系具有一定的顺序。
如果不需要一个有序的集合,则建议使用HashMap类;如果需要进行有序的遍历输出,则建议使用TreeMap类。 在这种情况下,可以先使用 HashMap。在需要排序时,利用现有的 HashMap,创建一个 TreeMap 类型的实例(例如下面的例子)。
引用:
https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
-转载请注明
原文出处:http://lixh1986.iteye.com/blog/1757589
--
TreeMap 类不仅实现了 Map 接口,还实现了 Map 接口的子接口 java.util.SortedMap。
TreeMap 类中不允许键对象为 null 或是 基本数据类型,这是因为 TreeMap 中的对象必须是可排序的(即对象需要实现 java.lang.Comparable 接口)
TreeMap 类通过实现 SortedMap 接口得到的方法如表1所示:
方法名称 | 返回值类型 | 说明 |
comparator() | Comparator<? super K> | 获取 TreeMap 实例使用的 Comparator。使用空的构造方法创建的 TreeMap 实例,则返回 null |
fisrtKey() | K | 获取第一个(排在最低的)对象的 Key |
lastKey() | K | 获取最后个(排在最高的)对象的 Key |
headMap(K toKey) | SortedMap<K,V> | 获取一个子集。其所有对象的 key 的值小于 toKey |
subMap(K fromKey, K toKey) | SortedMap<K,V> | 获取一个子集。其所有对象的 key 的值小于 toKey ,大于等于 fromKey |
tailMap(K fromKey) | SortedMap<K,V> | 获取一个子集。其所有对象的 key 的值大于等于 fromKey |
在创建 TreeMap 对象时,如果使用参数为空的构造方法,则根据 Map 对象的 key 进行排序;如果使用参数为 Comparator 的构造方法,则根据 Comparator 进行排序。
HashMap VS. TreeMap
在添加、删除和定位映射关系上,TreeMap类要比HashMap类的性能差一些,但是其中的映射关系具有一定的顺序。
如果不需要一个有序的集合,则建议使用HashMap类;如果需要进行有序的遍历输出,则建议使用TreeMap类。 在这种情况下,可以先使用 HashMap。在需要排序时,利用现有的 HashMap,创建一个 TreeMap 类型的实例(例如下面的例子)。
import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; public class TestCollection { public static void main(String[] args) { System.out.println("开始:"); Person person1 = new Person("马先生", 220181); Person person2 = new Person("李先生", 220193); Person person3 = new Person("王小姐", 220186); Map<Number, Person> map = new HashMap<Number, Person>(); map.put(person1.getId_card(), person1); map.put(person2.getId_card(), person2); map.put(person3.getId_card(), person3); // HashMap System.out.println("HashMap,无序:"); for (Iterator<Number> it = map.keySet().iterator(); it.hasNext();) { Person person = map.get(it.next()); System.out.println(person.getId_card() + " " + person.getName()); } // TreeMap System.out.println("TreeMap,升序:"); TreeMap<Number, Person> treeMap = new TreeMap<Number, Person>(); treeMap.putAll(map); for (Iterator<Number> it = treeMap.keySet().iterator(); it.hasNext();) { Person person = treeMap.get(it.next()); System.out.println(person.getId_card() + " " + person.getName()); } System.out.println("TreeMap,降序:"); TreeMap<Number, Person> treeMap2 = new TreeMap<Number, Person>(Collections.reverseOrder()); treeMap2.putAll(map); for (Iterator it = treeMap2.keySet().iterator(); it.hasNext();) { Person person = (Person) treeMap2.get(it.next()); System.out.println(person.getId_card() + " " + person.getName()); } System.out.println("结束!"); } }
引用:
https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
-转载请注明
原文出处:http://lixh1986.iteye.com/blog/1757589
--
发表评论
-
java 将文件夹所有的文件合并到指定的文件夹下
2020-06-30 19:17 1065场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 488多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 484一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 462转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 548一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 693POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 1070观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 681https://stackoverflow.com/a/177 ... -
Java lib 操作 excel 插入图片
2019-01-19 12:46 881https://poi.apache.org/componen ... -
数据库连接池C3P0
2018-05-29 16:50 897一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20751package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 818Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5722三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 842一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1411一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5385Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3834一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2704一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1059单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5568一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ...
相关推荐
Java 中的 Map、HashMap、TreeMap 使用详解 Map 是 Java 集合框架中的一个接口,用于存储键值对,根据键可以获取值。Map 中的键不允许重复,但值可以重复。在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 ...
本资源“Java程序设计技巧与开发实例”深入探讨了Java编程中的关键技术和实用策略,旨在帮助开发者提升编程效率和代码质量。 首先,Java的设计原则包括“Write Once, Run Anywhere”(一次编写,到处运行),这得益...
- **异常与异常类**:了解Java中的异常机制,如何抛出和捕获异常,以及使用try-catch-finally结构处理异常。 - **自定义异常**:学习在必要时创建自己的异常类。 4. **集合框架** - **数组与泛型**:学习使用...
Java JDK实例宝典源码是Java开发者的重要参考资料,它涵盖了JDK中的各种核心类库、API及其实现的源代码。这些源码对于深入理解Java语言的底层运作机制、优化代码以及解决实际问题有着不可估量的价值。下面,我们将...
这些知识点在提供的源代码实例中可能会有具体的应用,例如,你可能会看到如何定义和使用类、对象,如何处理异常,如何实现多线程,以及如何利用集合框架进行数据操作等。通过分析和实践这些例子,你可以更深入地理解...
在Java中,工具类通常是静态方法的集合,无需实例化对象就能直接调用,大大提高了代码的可复用性和开发效率。以下是对28个常用的Java工具类的详细说明: 1. **`java.util.Arrays`**:这个类提供了处理数组的各种...
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法通常用于执行特定的、重复的任务,以提高代码的重用性和效率。这些工具类不依赖于实例化,而是通过调用静态方法来提供服务。下面我们将...
7. **集合框架**:Java集合框架包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)等接口和类,它们为存储和操作对象提供了丰富的选择。 8. **IO流**:Java的输入/输出...
#### 三、实例代码解析 以下是一些使用不同集合类的示例代码: ##### 3.1 Set 示例 ```java import java.util.*; public class SetExample { public static void main(String[] args) { Set<String> set = new...
以上内容涵盖了Java基础知识的主要方面,通过实例分析,你可以更深入地理解和应用这些概念,为后续的Java开发打下坚实的基础。Java笔记文件应该包含了这些知识点的详细解释和示例代码,建议仔细阅读和实践。
4. **集合框架**:Java集合框架包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)。熟练掌握它们的特性和使用场景可以提高代码效率。 5. **IO流**:Java的IO流用于数据...
《JAVA完全自学手册解析》是针对初学者和进阶者的一本全面的指南,旨在帮助读者深入理解JAVA编程语言的核心概念和技术。这本书的课后答案解析部分尤其关键,因为它提供了实践练习的解答,有助于巩固理论知识,提升...
《Java集成开发实例精解》一书主要涵盖了Java在实际项目中的综合应用,旨在通过具体的实例帮助读者深入理解和掌握Java编程技术。以下是对这个主题的详细解析: Java是一种广泛使用的面向对象的编程语言,由Sun ...
《Java JDK实例宝典》是由夏先波编著的一本针对Java初学者和进阶者的重要参考资料,书中包含了丰富的Java编程实例,旨在帮助读者深入理解Java JDK(Java Development Kit)的各项功能和用法。这本书的源代码是学习...
了解如何声明、实例化和使用类与对象是Java学习的关键。 3. **封装**:封装是面向对象编程的一个重要特性,它隐藏了类的内部实现细节,只对外提供公共接口。通过访问修饰符(public、private、protected)来控制...
Java编程语言是由Sun Microsystems...总结,"Sun公司的Java实例手册"将全面涵盖这些Java编程的基础和高级概念,通过实例解析,帮助开发者深入理解和运用Java技术,无论是初学者还是经验丰富的程序员,都能从中受益。
在Java编程语言中,工具类(Utility Classes)是那些提供了静态方法或常量,用于执行特定任务或提供通用功能的类。这些类通常被设计为不可实例化,以确保其功能只能通过静态调用来访问。Java标准库(Java Standard ...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
在Java中,可以使用类适配器或接口适配器,使不兼容的接口能够协同工作。 7. **装饰器模式**:动态地给一个对象添加一些额外的职责。Java的IO流类库广泛使用了装饰器模式,如`BufferedReader`、`...