Java—Map浅入
写支付签名的时候遇到了Map一家,就简单的比较了一下,于是乎先打印看看结果
Map<String,String> hashMap1 = new HashMap<>();
hashMap1.put("d","1");
hashMap1.put("e","2");
hashMap1.put("c","3");
hashMap1.put("b","4");
hashMap1.put("a","5");
for (Map.Entry<String, String> entry : hashMap1.entrySet()) {
System.out.println("hashMap1: Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
System.out.println("------------------------------------------------------------------------------------------");
Map<String,String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("d","1");
linkedHashMap.put("e","2");
linkedHashMap.put("c","3");
linkedHashMap.put("b","4");
linkedHashMap.put("a","5");
for (Map.Entry<String, String> entry : linkedHashMap.entrySet()) {
System.out.println("linkedHashMap: Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
System.out.println("------------------------------------------------------------------------------------------"); Map<String,String> treeMap = new TreeMap<>();
treeMap.put("d","1");
treeMap.put("e","2");
treeMap.put("c","3");
treeMap.put("b","4");
treeMap.put("a","5");
for (Map.Entry<String, String> entry : treeMap.entrySet()) {
System.out.println("treeMap: Key = " + entry.getKey() + ", Value = " + entry.getValue());
} 打印结果如下
hashMap1: Key = a, Value = 5
hashMap1: Key = b, Value = 4
hashMap1: Key = c, Value = 3
hashMap1: Key = d, Value = 1
hashMap1: Key = e, Value = 2
------------------------------------------------------------------------------------------
linkedHashMap: Key = d, Value = 1
linkedHashMap: Key = e, Value = 2
linkedHashMap: Key = c, Value = 3
linkedHashMap: Key = b, Value = 4
linkedHashMap: Key = a, Value = 5
------------------------------------------------------------------------------------------
treeMap: Key = a, Value = 5
treeMap: Key = b, Value = 4
treeMap: Key = c, Value = 3
treeMap: Key = d, Value = 1
treeMap: Key = e, Value = 2
乍一看 hashMap 与 treeMap貌似没啥区别,可能是值设置的太简单了存在偶然性,于是乎
改了一下
Map<String,Object> hashMap2 = new HashMap<String,Object>();
hashMap2.put("1a", "a");
hashMap2.put("2", "b");
hashMap2.put("4a", "d");
hashMap2.put("3", "c");
hashMap2.put("2a", "d");
hashMap2.put("3a", "c");
for(Map.Entry<String, Object> entry : hashMap2.entrySet()){
System.out.println("hashMap2: Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
System.out.println("------------------------------------------------------------------------------------------"); Map<String,Object> linkedHashMap2 = new LinkedHashMap<>();
linkedHashMap2.put("1a", "a");
linkedHashMap2.put("2", "b");
linkedHashMap2.put("4a", "d");
linkedHashMap2.put("3", "c");
linkedHashMap2.put("2a", "d");
linkedHashMap2.put("3a", "c");
for(Map.Entry<String, Object> entry : linkedHashMap2.entrySet()){
System.out.println("linkedHashMap2: Key = " + entry.getKey() + ", Value = " + entry.getValue());
} System.out.println("------------------------------------------------------------------------------------------");
Map<String,Object> treeMap2 = new TreeMap<>();
treeMap2.put("1a", "a");
treeMap2.put("2", "b");
treeMap2.put("4a", "d");
treeMap2.put("3", "c");
treeMap2.put("2a", "d");
treeMap2.put("3a", "c");
for(Map.Entry<String, Object> entry : treeMap2.entrySet()){
System.out.println("treeMap2: Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
打印结果果然不一样了
hashMap2: Key = 1a, Value = a
hashMap2: Key = 2, Value = b
hashMap2: Key = 3, Value = c
hashMap2: Key = 4a, Value = d
hashMap2: Key = 3a, Value = c
hashMap2: Key = 2a, Value = d
------------------------------------------------------------------------------------------
linkedHashMap2: Key = 1a, Value = a
linkedHashMap2: Key = 2, Value = b
linkedHashMap2: Key = 4a, Value = d
linkedHashMap2: Key = 3, Value = c
linkedHashMap2: Key = 2a, Value = d
linkedHashMap2: Key = 3a, Value = c
------------------------------------------------------------------------------------------
treeMap2: Key = 1a, Value = a
treeMap2: Key = 2, Value = b
treeMap2: Key = 2a, Value = d
treeMap2: Key = 3, Value = c
treeMap2: Key = 3a, Value = c
treeMap2: Key = 4a, Value = d
综上简单的来看,只有treeMap做了排序
hashMap看心情排序
linkedHashMap按照插入顺序排序
简单的理解就这么多,代码是写完了,有时间深入
欢迎留言,指正不足
Java—Map浅入的更多相关文章
- 浅入深出之Java集合框架(上)
Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(中)
Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(下)
Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...
- Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取
在文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码中我们提到了两个问题: 1,为什么在以前的代码流程中从来没有addMapper,而这里却有getMapper? 2,UserDao ...
- 浅入浅出 1.7和1.8的 HashMap
前言 HashMap 是我们最最最常用的东西了,它就是我们在大学中学习数据结构的时候,学到的哈希表这种数据结构.面试中,HashMap 的问题也是常客,现在卷到必须答出来了,是必须会的知识. 我在学习 ...
- Spring浅入浅出——不吹牛逼不装逼
Spring浅入浅出——不吹牛逼不装逼 前言: 今天决定要开始总结框架了,虽然以前总结过两篇,但是思维是变化的,而且也没有什么规定说总结过的东西就不能再总结了,是吧.这次总结我命名为浅入浅出,主要在于 ...
- Spring的数据库编程浅入浅出——不吹牛逼不装逼
Spring的数据库编程浅入浅出——不吹牛逼不装逼 前言 上文书我写了Spring的核心部分控制反转和依赖注入,后来又衔接了注解,在这后面本来是应该写Spring AOP的,但我觉得对于初学者来说,这 ...
- Spring MVC浅入浅出——不吹牛逼不装逼
Spring MVC浅入浅出——不吹牛逼不装逼 前言 上文书说了Spring相关的知识,对Spring来了个浅入浅出,大家应该了解到,Spring在三层架构中主做Service层,那还有Web层,也就 ...
- Mybatis源码解析,一步一步从浅入深(一):创建准备工程
Spring SpringMVC Mybatis(简称ssm)是一个很流行的java web框架,而Mybatis作为ORM 持久层框架,因其灵活简单,深受青睐.而且现在的招聘职位中都要求应试者熟悉M ...
随机推荐
- C# FTP操作代码实现
C# FTP 实现方式,废话不多说,直接上代码 public class FtpClient { #region 构造函数 /// <summary> /// 创建FTP工具 /// & ...
- python之合并多个字典或映射
问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 假如你有如下两个字典: a = {'x': 1, 'z': 3} b ...
- .net Windows Service 按装及遇到的问题
一.注册方式1.cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ 2.按装:InstallUtil -i E:\WorkAll\Finance\t ...
- su - 运行替换用户和组标识的shell
SYNOPSIS(总览) su [OPTION]... [-] [USER [ARG]...] DESCRIPTION(描述) 修改有效用户标识和组标识为USER的. -, -l, --login 使 ...
- Grep的过滤使用
grep的过滤使用 已知文件test里有以下内容 [root@yangwenbo /]# cat test yuni yunwei YUNWEI YWEI yunjijsuan yunsuan YUN ...
- Java工程师面试linux操作选择面试题大全
1.请写出常用的linux指令不低于10个,请写出linux tomcat启动.linux指令arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)shutdown -h n ...
- hbuilder 配置app为沉浸式状态栏
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
== 0) { convertView.setBackgroundResource(R.drawable.list_gray_9); } else { convertView.setBackgroun ...
- js-原生js触发器使用
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 【Java架构:基础技术】一篇文章搞掂:Eclipse
Eclipse中使用SVN 1.打开资源库视图 https://www.cnblogs.com/liangguangqiong/p/7965770.html 一.编辑器方面 格式化取消自动换行:打开E ...