前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java linkedhashmap 用法_LinkedHashMap和HashMap的区别以及使用方法

java linkedhashmap 用法_LinkedHashMap和HashMap的区别以及使用方法

作者头像
用户7886150
修改2021-04-23 10:47:32
3490
修改2021-04-23 10:47:32
举报
文章被收录于专栏:bit哲学院

参考链接: Java LinkedHashMap

顾名思义LinkedHashMap是比HashMap多了一个链表的结构。与HashMap相比LinkedHashMap维护的是一个具有双重链表的HashMap,LinkedHashMap支持2中排序一种是插入排序,一种是使用排序,最近使用的会移至尾部例如 M1 M2 M3 M4,使用M3后为 M1 M2 M4 M3了,LinkedHashMap输出时其元素是有顺序的,而HashMap输出时是随机的,如果Map映射比较复杂而又要求高效率的话,最好使用LinkedHashMap,但是多线程访问的话可能会造成不同步,所以要用Collections.synchronizedMap来包装一下,从而实现同步。其实现一般为:

 Map map = Collections.synchronizedMap(new LinkedHashMap(

 import java.util.Iterator;

 import java.util.LinkedHashMap;

 import java.util.Map;

 public class TestLinkedHashMap {

 public static void main(String args[])

 {

 System.out.println("*************************LinkedHashMap*************");

 Map map = new LinkedHashMap();

 map.put(6, "apple");

 map.put(3, "banana");

 map.put(2,"pear");

 for (Iterator it =  map.keySet().iterator();it.hasNext();)

 {

 Object key = it.next();

 System.out.println( key+"="+ map.get(key));

 }

 System.out.println("*************************HashMap*************");

 Map map1 = new  HashMap();

 map1.put(6, "apple");

 map1.put(3, "banana");

 map1.put(2,"pear");

 for (Iterator it =  map1.keySet().iterator();it.hasNext();)

 {

 Object key = it.next();

 System.out.println( key+"="+ map1.get(key));

 }

 }

 }

 运行结果如下:

 *************************LinkedHashMap*************

 6=apple

 3=banana

 2=pear

 *************************HashMap**************************

 2=pear

 6=apple

 3=banana

 分析:LinkedHashmap 的特点是put进去的对象位置未发生变化,而HashMap会发生变化。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档