LinkedHashMap和HashMap的区别
2024-08-23 04:29:42
一、问题描述:
前几天写webservices接口,需要同步人力资源,涉及到添加顺序:主账号需要添加在次账号之前,直接上级需要添加在下级之前。解析xml之后直接封装在HashMap中,导致取对象时顺序被打乱,随后封装在LinkedHashMap中得以解决。
二、主要区别:
LinkedHashMap是比HashMap多了一个链表的结构。与HashMap相比LinkedHashMap维护的是一个具有双重链表的HashMap,LinkedHashMap支持2中排序一种是插入排序,一种是使用排序,最近使用的会移至尾部例如 M1 M2 M3 M4,使用M3后为 M1 M2 M4 M3了,LinkedHashMap输出时其元素是有顺序的,而HashMap输出时是随机的,如果Map映射比较复杂而又要求高效率的话,最好使用LinkedHashMap,但是多线程访问的话可能会造成不同步,所以要用Collections.synchronizedMap来包装一下,从而实现同步。另外,LinkedHashMap可以实现快速的查询第一个元素(First)跟结尾(Last)。
三、TreeMap:
TreeMap取出来的是排序后的键值对。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好 。
最新文章
- git推送文件至github缺少README文件
- 递归算法经典实例小结(C#实现)
- http缓存之304 last-modified,cache-control:max-age,Etag等
- [转]iptables详解
- c语言知识(1)
- HttpServletRequestWrapper的使用
- Codeforces Testing Round #12 C. Subsequences 树状数组维护DP
- Android 设置隐式意图
- JAVA实现AES的加密和解密算法
- Linux 内核源码中likely()和unlikely()
- Kafka概述与设计原理
- 201521123099 《Java程序设计》第3周学习总结
- PHP计算上个月的开始时间和结束时间戳
- 《C程序猿从校园到职场》勘误
- Nginx 动静分离
- BZOJ5197:[CERC2017]Gambling Guide(最短路,期望DP)
- Cookie知识点总结
- react使用mobx
- TCP加速锐速SS(ServerSpeeder)破解版一键安装
- Android 设置EditText光标位置(转)