TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。
使用 下拉菜单 或是 checkbox 时,就会碰到顺序的问题。
HashMap是根据HashCode来排序, 不靠谱。
这里就要使用LinkedHashMap。
package com.hp.ucmdb.adapter.action;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class TestMap {
private static Map<String, String> initIntTransCd() {
Map<String, String> map = new HashMap<String, String>();
map.put("1010","消费");
map.put("3010","消费撤销");
map.put("3030","退货");
map.put("4021","无密实名认证");
map.put("1040","无密代扣");
map.put("1070","实名支付");
map.put("5021","缴费(消费+销账)");
return map;
}
public static void main(String[] args) {
Map<String, String> map = initIntTransCd();
for(String k : map.keySet()){
System.out.println(map.get(k));
}
}
/* TreeMap
消费
无密代扣
实名支付
消费撤销
退货
无密实名认证
缴费(消费+销账)*/
/* LinkedHashMap
消费
消费撤销
退货
无密实名认证
无密代扣
实名支付
缴费(消费+销账)*/
/* HashMap
实名支付
无密实名认证
消费
无密代扣
退货
缴费(消费+销账)
消费撤销 */
}
LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。在遍历的时候会比HashMap慢
PR项目
public class RecordBean {
private LinkedHashMap<String, String> attr = new LinkedHashMap<String, String>();
...
}
项目中需要重写RecordBean对应的xml, 需要按照原来的顺序保存各个field的顺序, 所以采用LinkedHashMap
分享到:
相关推荐
### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...
HashMap, HashTable, LinkedHashMap, TreeMap 的区别 在 Java 中,Map 是一个非常重要的集合类,用于存储键值对。其中,HashMap, HashTable, LinkedHashMap, TreeMap 是四种常用的 Map 实现类,每种类都有其特点和...
在Java编程语言中,`HashMap`、`TreeMap`和`LinkedHashMap`都是`java.util.Map`接口的实现,它们提供了不同的数据存储和访问策略。本文将深入探讨这三种数据结构的特点、工作原理以及适用场景。 1. **HashMap** `...
HashMap是最常用的Map实现,它提供了快速的查找,但不保证元素的顺序,且允许null键和值。TreeMap则按Key的自然排序或自定义排序存储元素,适合需要排序的场景。HashTable是线程安全的,但效率相对较低,不推荐在单...
在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的哈希码值存储数据,能够快速地存储和获取...
了解Map的整体结构也很重要,HashMap和其他Map实现如LinkedHashMap(保持插入顺序或访问顺序的HashMap)都是从AbstractMap继承,而Hashtable则直接继承Dictionary类,这反映了它们设计上的差异和适用场景的不同。...
// 常用的map接口的实现类有HashMap,LinkedHashMap和TreeMap // HashMap不保证集合中元素的顺序, // LinkedHashMap按插入顺序排序 // TreeMap按自己的意愿进行排序,默认按key值升序排序。 另包含一篇网文:在java...
- 如果对HashMap进行大量的排序操作,考虑使用TreeMap,它默认按照key的自然顺序排序,也可以自定义Comparator。 **5. 结论** HashMap排序并不是HashMap本身的功能,而是通过其他手段实现的。根据实际需求,可以...
本篇文章将深入讲解Map的使用实例,包括插入、读取和遍历操作,以及HashMap、LinkedHashMap和TreeMap这三种常见的Map实现类之间的区别。 首先,让我们看看如何创建和插入键值对。在Java中,我们通常通过调用`put()`...
该文档主要详细总结了Java集合的相关知识,包括Collection和Map接口、Collection接口的子接口List和Set接口以及具体的实现类、存储原理等;Map接口的子接口HashMap、LinkedHashMap、TreeMap、Properties等
HashMap是Java编程语言中最常用的集合类之一,它提供了一...如果需要在HashMap中直接排序,可能需要结合其他数据结构如TreeMap或LinkedHashMap。如果想深入了解这些源代码,建议直接访问给出的博客链接以获取详细信息。
本文将深入探讨Java中Map的几个重要子类:LinkedHashMap和TreeMap,以及Set接口的相关实现。 首先,Map接口在Java中扮演着存储键值对的角色,而LinkedHashMap是HashMap的一个子类,它提供了有序性。与HashMap不同,...
涵盖了Map接口的基本介绍,三种主要的实现类——HashMap、TreeMap、LinkedHashMap的具体实现方式及其特点。此外,文中还探讨了Map的各种基本操作方法(put、get、remove等)、遍历方式以及在使用时应注意的问题,...
文中首先概述了Java集合框架作为程序里储存、操纵集合数据的基本工具,具体阐述了四大部分即List(ArrayList、LinkedList)、Set(HashSet、LinkedHashSet、TreeSet)、Map(HashMap、LinkedHashMap、TreeMap)和...
### HashMap遍历详解 在Java编程中,`HashMap`是一种常用的数据结构,它实现了`Map`接口,提供了基于哈希表的存储方式,...同时,对于不允许null值的情况,可以选择`LinkedHashMap`或`TreeMap`等其他类型的地图实现。
JDK源码阅读笔记 ...LinkedHashMap TreeMap ConcurrentHashMap ConcurrentLinkedQueue ThreadPool ThreadLocal Reflection ScheduledThreadPool AsynchronousFileChannel BufferedInputStream Enum
LinkedHashMap是HashMap的子类,它保留了元素的插入顺序,意味着它可以按照元素插入的顺序来访问元素。TreeMap则是按照元素的自然顺序或自定义的比较器来排序的。 在上面的代码中,我们使用了LinkedHashMap来存储...
总的来说,HashMap在单线程环境下运行效率高,但在多线程环境下需要谨慎使用,且对于需要有序遍历的场景,可以考虑使用LinkedHashMap。对于需要排序的映射场景,建议使用TreeMap。在使用TreeMap时,key需要实现...
在Java基础学习中,掌握Map的子类如HashMap、LinkedHashMap和TreeMap对于深入理解Java编程至关重要。 HashMap是Map接口的一个实现,它基于哈希表(也称为散列表)进行操作,提供了快速的插入、删除和查找操作。在...
- 在需要一个有序但不关心元素自然排序的Map时,可以使用`LinkedHashMap`替代`TreeMap`,因为它的性能通常优于`TreeMap`。 5. **示例代码** ```java Map, Integer> linkedMap = new LinkedHashMap(); linkedMap...