写支付签名的时候遇到了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浅入的更多相关文章

  1. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  2. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  3. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  4. Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取

    在文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码中我们提到了两个问题: 1,为什么在以前的代码流程中从来没有addMapper,而这里却有getMapper? 2,UserDao ...

  5. 浅入浅出 1.7和1.8的 HashMap

    前言 HashMap 是我们最最最常用的东西了,它就是我们在大学中学习数据结构的时候,学到的哈希表这种数据结构.面试中,HashMap 的问题也是常客,现在卷到必须答出来了,是必须会的知识. 我在学习 ...

  6. Spring浅入浅出——不吹牛逼不装逼

    Spring浅入浅出——不吹牛逼不装逼 前言: 今天决定要开始总结框架了,虽然以前总结过两篇,但是思维是变化的,而且也没有什么规定说总结过的东西就不能再总结了,是吧.这次总结我命名为浅入浅出,主要在于 ...

  7. Spring的数据库编程浅入浅出——不吹牛逼不装逼

    Spring的数据库编程浅入浅出——不吹牛逼不装逼 前言 上文书我写了Spring的核心部分控制反转和依赖注入,后来又衔接了注解,在这后面本来是应该写Spring AOP的,但我觉得对于初学者来说,这 ...

  8. Spring MVC浅入浅出——不吹牛逼不装逼

    Spring MVC浅入浅出——不吹牛逼不装逼 前言 上文书说了Spring相关的知识,对Spring来了个浅入浅出,大家应该了解到,Spring在三层架构中主做Service层,那还有Web层,也就 ...

  9. Mybatis源码解析,一步一步从浅入深(一):创建准备工程

    Spring SpringMVC Mybatis(简称ssm)是一个很流行的java web框架,而Mybatis作为ORM 持久层框架,因其灵活简单,深受青睐.而且现在的招聘职位中都要求应试者熟悉M ...

随机推荐

  1. OpenSuSe开启sshd服务

    需要测试OpenSuSE11 x64上mysql性能,发现很多东西与centos以及红帽有差别.其中最切身的就是sshd服务的开启. 安装好OpenSuSE 11后,发现ssh连接不上去,可以ping ...

  2. rookit入門

    来源:rootkit_com 作者:Clandestiny 翻译:fqh “Help!我是一名新手!我需要一款rootkit入侵朋友的机器…我想编写自己的rootkit…我想开始开发代码… 该从哪里入 ...

  3. MQ入门介绍

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.消息传递指的是程序 ...

  4. mac 创建多个全局Path

    cd ~ 进入根目录 (没有这个文件 先touch .bash_profile) open -e .bash_profile 打开编辑然后保存 JAVA_HOME=/Library/Java/Java ...

  5. Apache启动后出现You don't have permission to access on this server的解决办法

    安装好wampserver想在浏览器打开运行php的结果,发现: You don't have permission to access on this server 解决办法是: 在Apache的根 ...

  6. Mybatis-概况

    是什么 官网定义 http://www.mybatis.org/mybatis-3/ 百科定义(维基百科) https://en.wikipedia.org/wiki/MyBatis Github: ...

  7. 添加ali yum源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #yum clean  a ...

  8. mac终端命令--自动补全

    1.打开nano编辑器 输入命令 nano .inputrc,回车,打开nano编辑器 2.在nano编辑器中输入如下命令: set completion-ignore-case on set sho ...

  9. 【Flutter学习】基本组件之基本网格Gradview组件

    一,概述 数据量很大的时用矩阵方式排列比较清晰,此时用网格列表组件,即为GridView组件,可实现多行多列的应用场景. 使用GridView创建网格列表有多种方式: GridView.count 通 ...

  10. 埃氏筛+线段树——cf731F

    从2e5-1依次枚举每个数作为主显卡,然后分段求比它大的数的个数,这里的复杂度是调和级数ln2e5,即埃氏筛的复杂度.. #include<bits/stdc++.h> using nam ...