LinkedHashMap和HashMap的区别以及使用方法
来源:互联网 发布:监控软件 linux 排行 编辑:程序博客网 时间:2024/05/22 11:44
顾名思义LinkedHashMap是比HashMap多了一个链表的结构。与HashMap相比LinkedHashMap维护的是一个具有双重链表的HashMap,LinkedHashMap支持2中排序:一种是插入排序,一种是使用排序,最近使用的会移至尾部例如 M1 M2 M3 M4,使用M3后为 M1 M2 M4 M3了,LinkedHashMap输出时其元素是有顺序的,而HashMap输出时是随机的,如果Map映射比较复杂而又要求高效率的话,最好使用LinkedHashMap,但是多线程访问的话可能会造成不同步,所以要用Collections.synchronizedMap来包装一下,从而实现同步。其实现一般为:
Map<String String> map = Collections.synchronizedMap(new LinkedHashMap(<String String));import java.util.HashMap;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<Integer,String> map = new LinkedHashMap<Integer,String>(); 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<Integer,String> map1 = new HashMap<Integer,String>(); 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会发生变化.
0 0
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap和HashMap的区别以及使用方法
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap 和 HashMap的区别
- LinkedHashMap和HashMap的区别
- HashMap和LinkedHashMap的区别
- HashMap和LinkedHashMap的区别
- 国家统计局:去年领导干部在家时间平均增30分钟
- MVC 伪静态的实现方式
- cmd中操作命令
- 初学C++之通用工具(一)
- 2>.设两个二维数组,分别用两种方式进行初始化,并分别按照行优先(先输出第一行所有值,再输出第二行)、列优先(先输出第一列的所有值,再输出第二列)的次序输出。
- LinkedHashMap和HashMap的区别以及使用方法
- proc/sys/net/ipv4/下各项的意义
- 第4周作业-打字成绩判断程序—修改
- C++贪吃蛇实例化
- vivado学习实验4笔记
- 第6周作业1-闰年之循环判断
- 鼠标单击变双击补丁(含C++代码)
- MFC实现窗口的任意分割——分割窗口
- 编程之美2014-资格赛-题目2:大神与三位小伙伴