写支付签名的时候遇到了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. spark性能调优05-troubleshooting处理

    1.调节reduce端缓冲区大小避免OOM异常 1.1 为什么要调节reduce端缓冲区大小 对于map端不断产生的数据,reduce端会不断拉取一部分数据放入到缓冲区,进行聚合处理: 当map端数据 ...

  2. Spring学习笔记(7)——Bean的基本配置

            先从IOC说起,这个概念其实是从我们平常new一个对象的对立面来说的,我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这样有什么坏处呢?其实很显然的,使用new那么就 ...

  3. CSS 中 transform、animation、transition、translate的区别

    在前端页面的开发过程中,经常会碰到这么几个 CSS 属性容易搞混:transform.translate.animation还有transition.下面就针对这几个 CSS 属性做一个对比,辨别这几 ...

  4. tcp - 传输控制协议 (TCP)

    总缆 SYNOPSIS #include <sys/socket.h> #include <netinet/in.h> tcp_socket = socket(PF_INET, ...

  5. 前端学习(一)html标签(笔记)

    html->标签 标题标签:<h1>标题文字</h1>段落标签:<p>段落文字</p>换行标签:<br/>图片标签:<img s ...

  6. PHP-缺失的第一个正数

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0]输出: 3示例 2: 输入: [3,4,-1,1]输出: 2示例 3: 输入: [7,8,9,11,12] ...

  7. vue插件安装

    百度云下载插件   https://pan.baidu.com/s/13QhPilzJa8yu3HvKCt47Pw 学习Vue.js时,Chrome浏览器安装Vue.js devtool能很方便的查看 ...

  8. VS2017编译64位CloudCompare

    需求:编译一个支持读写las点云的CC,然后再开发CC插件实现业务功能. 编译环境: 1.Windows 10 2.Visual Studio 2017 Community 3.Qt 5.9.4 开源 ...

  9. Vue 指令大全

    准备开始本章要给大家带来的内容是相关Vue中的组件以及一系列常用属性.本章合适人群囊括了除已有开发经验人员以外的小白新手,从how.why.what三个角度来让大家理解并使用该技术历史介绍angula ...

  10. 数学思维——cf1244C

    可惜cf不能用int128,不然这个题就是个exgcd的板子题 这是exgcd的解法,但是只用ll的话会溢出 #include<bits/stdc++.h> using namespace ...