博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Map 自定义排序
阅读量:5158 次
发布时间:2019-06-13

本文共 574 字,大约阅读时间需要 1 分钟。

HashMap是不保证顺序的,要有顺序,要用LinkedHashMap,这是按照插入顺序排列的。

Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将将键插入到映射中的顺序(插入顺序)。注意,如果在映射中重新插入键,则插入顺序不受影响。。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中。)

此实现可以让客户避免未指定的、由 HashMap(及 Hashtable)所提供的通常为杂乱无章的排序工作,同时无需增加与 TreeMap 相关的成本。使用它可以生成一个与原来顺序相同的映射副本,而与原映射的实现无关:
     void foo(Map m) {
         Map copy = new LinkedHashMap(m);
         ...
     }
如果模块通过输入得到一个映射,复制这个映射,然后返回由此副本确定其顺序的结果,这种情况下这项技术特别有用。(客户通常期望返回的内容与其出现的顺序相同。)

 

资料来源:

转载于:https://www.cnblogs.com/yanli620/archive/2012/02/14/2351161.html

你可能感兴趣的文章
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
bool
查看>>
C#笔记一 .Net Framwork
查看>>
第六次实训
查看>>
Wireshark 读书笔记
查看>>
张季跃201771010139《面向对象程序设计(java)》第一周学习总结
查看>>
设计模式 创建型 单例模式
查看>>
HTML_03_基础表单属性 ...
查看>>
虚拟机上安装vmware tool
查看>>
Oracle Profile
查看>>
excel导出工具
查看>>
预处理语句
查看>>
MySql语句分类
查看>>
MySql 存储过程 光标只循环一次
查看>>
CSS文本框边框发光效果
查看>>
演进式数据库建模
查看>>
FEniCS 1.1.0 发布,计算算术模型
查看>>
Entity Framework知识小总结
查看>>
打印蛇形矩阵
查看>>
解决Xshell中文乱码问题
查看>>