一、问题描述:  

  前几天写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会更好 。

最新文章

  1. git推送文件至github缺少README文件
  2. 递归算法经典实例小结(C#实现)
  3. http缓存之304 last-modified,cache-control:max-age,Etag等
  4. [转]iptables详解
  5. c语言知识(1)
  6. HttpServletRequestWrapper的使用
  7. Codeforces Testing Round #12 C. Subsequences 树状数组维护DP
  8. Android 设置隐式意图
  9. JAVA实现AES的加密和解密算法
  10. Linux 内核源码中likely()和unlikely()
  11. Kafka概述与设计原理
  12. 201521123099 《Java程序设计》第3周学习总结
  13. PHP计算上个月的开始时间和结束时间戳
  14. 《C程序猿从校园到职场》勘误
  15. Nginx 动静分离
  16. BZOJ5197:[CERC2017]Gambling Guide(最短路,期望DP)
  17. Cookie知识点总结
  18. react使用mobx
  19. TCP加速锐速SS(ServerSpeeder)破解版一键安装
  20. Android 设置EditText光标位置(转)

热门文章

  1. review21
  2. js轮训
  3. HTML5 JS实现搜索匹配功能
  4. Respond.js的作用
  5. 利用Pelican搭建个人博客
  6. hdoj-1038-Biker's Trip Odometer(水题)
  7. SQL使用指南(2)—— 约束的使用
  8. SVN管理多个项目版本库 (windows,linux 通用)
  9. centos 下配置oracle11gR2开机自启
  10. [ZOJ2587]Unique Attack