LinkedHashMap和HashMap的区别以及使用方法
来源:互联网 发布:js开发工具中文版 编辑:程序博客网 时间:2024/05/18 03:20
顾名思义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会发生变化.
- 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的区别
- Android 进程优先级及提高优先级的方法(Service尽量不死之法)
- #pragma once 防止头文件被重复引用
- [NOIP2013] 火柴排队 离散化 树状数组 逆序对
- ActiveMQ
- STL erase陷阱
- LinkedHashMap和HashMap的区别以及使用方法
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- WebService深入浅出
- 【 D3.js 入门系列 --- 0 】 简介和安装
- Spring MVC + Spring + Hibernate集成
- 【bzoj3262】陌上花开
- Caffe安装以及GPU服务器设置并行
- JavaScript中canvas绘制太极图案
- 【Codeforces Round #411 (Div. 1)】Codeforces 804D