• 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键和值都不可以为空

  • 相关阅读:
    删DS.Store
    switch 多重选择
    PrintWrite写入文件
    读取文件
    notepad++如何把文件保存为java文件
    让notepad++成为轻量级JAVA的IDE
    Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序
    相关服务账号
    Jenkins安装与启动
    jmeter安装
  • 原文地址:https://www.cnblogs.com/Shanghai-vame/p/8341256.html
Copyright © 2020-2023  润新知