博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LinkedHashMap 与 HashMap区别
阅读量:5952 次
发布时间:2019-06-19

本文共 1242 字,大约阅读时间需要 4 分钟。

hot3.png

LinkedHashMap 与 HashMap区别 (非原创)

HashMap,LinkedHashMap,TreeMap都属于Map

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

HashMap 

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

                                                                                    

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

 

TreeMap 可以用于排序

 

HashMap的例子

public static void main(String[] args) {  

      Map<String, String> map = new HashMap<String, String>(); 

      map.put("a3", "aa");

      map.put("a2", "bb"); 

      map.put("b1", "cc");

      for (Iterator iterator = map.values().iterator(); iterator.hasNext();)     {

            String name = (String) iterator.next(); 

            System.out.println(name);   

     }  

  }

 

输出:bbccaa

LinkedHashMap例子:

   

public static void main(String[] args) {   

     Map<String, String> map = new LinkedHashMap<String, String>();

     map.put("a3", "aa");       

     map.put("a2", "bb"); 

     map.put("b1", "cc"); 

     for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {           

             String name = (String) iterator.next(); 

             System.out.println(name);     

     }

}

输出:
aa
bb
cc

 

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

经本人测试linkedMap键和值都不可以为空

转载于:https://my.oschina.net/u/3717819/blog/1924102

你可能感兴趣的文章
【Linux】Linux 在线安装yum
查看>>
oracle 管理操作 (转)
查看>>
DEV 等待窗口
查看>>
实验03博客园总结
查看>>
laravel captcha 验证码制作
查看>>
VS2017发布微服务到docker
查看>>
lombok
查看>>
Dev-FAT-UAT-PRO
查看>>
Maven, IntellJ Idea 配置注意点
查看>>
Android开发学习总结(五)——Android应用目录结构分析(转)
查看>>
观察者模式
查看>>
python操作excel (openpyxl)
查看>>
[PHP]PHP rpc框架hprose测试
查看>>
网络安全系列之十八 MySQL基本操作(PHP注入基础)
查看>>
Java实现MongoDB的日期(Date)分组功能
查看>>
《从零开始学Swift》学习笔记(Day 39)——构造函数重载
查看>>
疯狂ios讲义之实例:通过旋转手势旋转图片
查看>>
软件定义重划边界——IT就是把复杂东西简单化
查看>>
Exchange Server 2016管理系列课件22.通讯组概述
查看>>
exchange 2013设置分层通讯簿(HAB)
查看>>