LinkedHashMap和HashMap区别

HashMap,LinkedHashMap,TreeMap都属于Map

Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。

1.HashMap 
   是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力。

HashMap 例子:

 1 public class LinkHashMap {
 2 
 3     public static void main(String[] args) {
 4         //############HashMap例子#################//
 5         HashMap<String, String> hashMap = new HashMap<String, String>();
 6         hashMap.put("A3", "AA");
 7         hashMap.put("A2", "BB");
 8         hashMap.put("A1", "CC");
 9         for (String key : hashMap.keySet()) {
10             System.out.println("key= "+ key + " and value= " + hashMap.get(key));
11       }
12     }
13 }

输出结果为:

key= A1 and value= CC
key= A2 and value= BB
key= A3 and value= AA

                                                        
2.LinkedHashMap
  LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,可以保持顺序

 1 package com.pensee.config;
 2 
 3 import java.util.HashMap;
 4 import java.util.Iterator;
 5 import java.util.LinkedHashMap;
 6 import java.util.Map;
 7 
 8 public class LinkHashMap {
 9 
10     public static void main(String[] args) {
11         //############linkedMap例子#################//
12         LinkedHashMap<String, String> linkedMap = new LinkedHashMap<String, String>();
13         linkedMap.put("A3", "AA");
14         linkedMap.put("A2", "BB");
15         linkedMap.put("A1", "CC");
16         for (Iterator<String> iterator = linkedMap.values().iterator(); iterator.hasNext();) {
17             String name = (String) iterator.next();
18             System.out.println(name);
19         }
20         
21         //############HashMap例子#################//
22         HashMap<String, String> hashMap = new HashMap<String, String>();
23         hashMap.put("A3", "AA");
24         hashMap.put("A2", "BB");
25         hashMap.put("A1", "CC");
26         for (String key : hashMap.keySet()) {
27             System.out.println("key= "+ key + " and value= " + hashMap.get(key));
28       }
29     }
30 }

输出结果为:AA
      BB
      CC

运行截图:

3.TreeMap 可以用于排序

  总结: linkedMap在于存储数据你想保持进入的顺序与被取出的顺序一致的话,优先考虑LinkedMap,hashMap键只能允许为一条为空,value可以允许为多条为空,键唯一,但值可以多个。

          linkedMap键和值都不可以为空

原文地址:https://www.cnblogs.com/Shanghai-vame/p/8341256.html