码迷,mamicode.com
首页 > 其他好文 > 详细

LinkedHashMap和HashMap的区别

时间:2017-04-10 13:33:29      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:排序   service   键值   输出   ebs   ash   访问   接口   lin   

一、问题描述:  

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

LinkedHashMap和HashMap的区别

标签:排序   service   键值   输出   ebs   ash   访问   接口   lin   

原文地址:http://www.cnblogs.com/liuyk-code/p/6688100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!