java linkedhashmap_java学习-hashMap和linkedHashMap
1、hashMap和linkedHashMap和treeMap
1 * LinkedHashMap是继承于HashMap,是基于HashMap和双向链表来实现的。
2 * HashMap无序;LinkedHashMap有序,可分为插入顺序和访问顺序两种。
3 * 如果是访问顺序,那put和get操作已存在的Entry时,都会把Entry移动到双向链表的表尾(其实是先删除再插入)。
4 * LinkedHashMap存取数据,还是跟HashMap一样使用的Entry[]的方式,双向链表只是为了保证顺序。
5 * LinkedHashMap是线程不安全的。
hashMap示例
//无序
Map hashMap = new HashMap<>();
hashMap.put("No1","小明1");
hashMap.put("No2","小明2");
hashMap.put("No3","小明3");
System.out.println("hashMap=>" + hashMap);
linkedHashMap示例
1 // 有序,线程不安全,双向链表
2 // LinkedHashMap默认的构造参数是默认按照插入顺序的,就是说你插入的是什么顺序,3 3 读出来的就是什么顺序, 但是也有访问顺序,就是说你访问了一个key,这个key就跑到了最4 后面
5 // 这里accessOrder设置为false,表示不是访问顺序而是插入顺序存储的,这也是默认值,
6 // 表示LinkedHashMap中存储的顺序是按照调用put方法插入的顺序进行排序的。
7 LinkedHashMap也提供了可以设置accessOrder的构造方法
8 Map linkedHashMap = new LinkedHashMap<>(16,0.75f,true);
9 linkedHashMap.put("No1","小明1");
10 linkedHashMap.put("No2","小明2");
11 linkedHashMap.put("No3","小明3");
12 System.out.println("开始时=>linkedHashMap=>" + linkedHashMap);
13 //set 迭代
14 // Set> set = hashMap.entrySet();
15 // System.out.println(set);
16 // Iterator> iterator = set.iterator();
17 // while(iterator.hasNext()){
18 // Map.Entry entry = iterator.next();
19 // System.out.println("key=>" + (String) entry.getKey());
20 // System.out.println("value=>" + (String) entry.getValue());
21 // }
22 Set> set2 = linkedHashMap.entrySet();
23 Iterator> iterator2 = set2.iterator();
24 while(iterator2.hasNext()){
25 Map.Entry entry = iterator2.next();
26 String key = (String) entry.getKey();
27 String value = (String) entry.getValue();
28 System.out.println("key:" + key + ",value:" + value);
29 }
30 String s = linkedHashMap.get("No2");
31 System.out.println("结束时=>linkedHashMap=>" + linkedHashMap);
32 Set> set3 = linkedHashMap.entrySet();
33 Iterator> iterator3 = set3.iterator();
34 while(iterator3.hasNext()){
35 Map.Entry entry = iterator3.next();
37 String key = (String) entry.getKey();
38 String value = (String) entry.getValue();
39 System.out.println("key:" + key + ",value:" + value);
40 }
treeMap
1 // TreeMap中默认的排序为升序,如果要改变其排序可以自己写一个Comparator
2 TreeMap treeMap = new TreeMap();
3 treeMap.put("No1",1);
4 treeMap.put("No3",3);
5 treeMap.put("No2",2);
6 System.out.println("treeMap=>" + treeMap);
请保持微笑的眼睛,才能看到更多美丽的风景 余生很贵,请勿浪费
java linkedhashmap_java学习-hashMap和linkedHashMap相关推荐
- java集合类学习笔记之LinkedHashMap
1.简述 LinkedHashMap是HashMap的子类,他们最大的不同是,HashMap内部维护的是一个单向的链表数组,而LinkedHashMap内部维护的是一个双向的链表数组.HashMap是 ...
- 彻底理解HashMap及LinkedHashMap
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:https://blog.csdn.net/fuzhongmin05/article/details/104355841 Ha ...
- Java—Map集合详解(HashMap/Hashtable/LinkedHashMap/Properties/TreeMap/WeakHashMap/IdentityHashMap/EnumMap)
关注微信公众号:CodingTechWork,一起学习进步. Map Map集合介绍 Map(也称为字典.关联数组)是用于保存具有映射关系的数据,保存两组值,key和value,这两组值可以是任何 ...
- 【Java集合学习系列】HashMap实现原理及源码分析
HashMap特性 hashMap是基于哈希表的Map接口的非同步实现,继承自AbstractMap接口,实现了Map接口(HashTable跟HashMap很像,HashTable中的方法是线程安全 ...
- Java多线程学习二十:HashMap 为什么是线程不安全的
为什么 HashMap 是线程不安全的?而对于 HashMap,相信你一定并不陌生,HashMap 是我们平时工作和学习中用得非常非常多的一个容器,也是 Map 最主要的实现类之一,但是它自身并不具备 ...
- 深入Java集合学习系列:LinkedHashSet的实现原理
转载自 深入Java集合学习系列:LinkedHashSet的实现原理 1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现 ...
- java入门学习_Java入门学习进阶知识点
Java入门学习进阶知识点 入门阶段,主要是培养Java语言的编程思想.了解Java语言的语法,书写规范等,掌握Eclipse.MyEclipse等开发工具,编写Java代码的能力.学完这个阶段你应该 ...
- java hashset 实现原理_深入Java集合学习系列:HashSet的实现原理
Updated on 九月 8, 2016 深入Java集合学习系列:HashSet的实现原理 1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持. ...
- 深入Java集合学习系列:HashSet的实现原理
引用自 http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532999.html, 作者:xwdreamer 深入Java集合学习系列:Hash ...
最新文章
- C:内存中供用户使用的存储空间
- 程序员最讨厌的9句话,你可有补充?
- CodeForces - 1245C Constanze's Machine(思维+找规律)
- Spring源码:FactoryBean
- 卷积神经网络原理_人脸识别背后,卷积神经网络的数学原理原来是这样的
- Springboot2.x使用redis作为缓存
- mpu6050 重力加速度_MPU6050抄底解读
- Java游戏小李飞镖,安全工程与虚拟技术部双节活动
- SQL语句和EF Group by 用法
- SNMPv3对安全威胁的分类
- 【面试题】---前端需要掌握的知识点-----更新...
- python内置类型
- Open-Unmix - A Reference Implementation for Music Source Separation
- vivo手机如何开启云服务器,怎么开启vivo手机中的云服务自动备份功能
- C++使用万能头文件报错
- vue 网页点击置顶图标缓慢置顶
- Linux数独小游戏C语言,C语言数独游戏的求解方法
- 手把手教你申请CSDN博客专家(2021新鲜出炉)
- 【物理应用】Matlab实现两端固支梁热力耦合的有限元分析
- 助力奈雪,发掘茶饮品牌元宇宙新玩法
热门文章
- Java-使用JavaMail发送一封邮件给用户邮箱功能实现
- Lambda-函数式接口(1)
- SVM支持向量机【直观理解】
- 算法练习day7——190325(比较器、不基于比较的排序、maxGap、数组实现栈和队列、minStack)
- 单机版五子棋java功能_java实现单机版和网络对战版五子棋程序
- java与flex通信_Flex与Java通信教程
- python中的np where_python – np.where在我的熊猫中不起作用
- ubuntu / 18.04 系统上配置 DHCP Server
- C/Cpp / STL / map 和 set 的不同点和相同点。
- Android Framework增加API 报错 Missing nullability on parameter