写支付签名的时候遇到了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. pip安装任何包都出现问题

    <!DOCTYPE html> { margin: 0; padding: 0; } body { background: url(images/body_bg.png) repeat-x ...

  2. c# 陈景润 15 子问题

    初学编程时在 csdn 上写过一个陈景润 15 子问题的项目,https://blog.csdn.net/weixin_41628344/article/details/79171846 当时的主要精 ...

  3. spring事务实现的几种方式

    1.编程式事务管理对基于POJO的应用来说是唯一选择. 需要在代码中调用 beginTransaction() commit() rollback()等事务管理相关的方法. 2.基于Transacti ...

  4. ionic2(3) 密码键盘组件 ionic2-pincode-input 使用

    1.效果展示: 2.安装: npm install ionic2-pincode-input --save 3.app.module.ts配置 app.module.ts import { NgMod ...

  5. mysql添加外键语句

    sql语句格式: · 添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主 ...

  6. RemoTing 搭建简单实现

    今天对C# Remoting进行了初步的学习,废话不说... RemotingModel: Talker.cs using System;using System.Collections.Generi ...

  7. printf sscanf进阶

    printf ; printf (3d", a);//将打印 035 printf(“%-*s”, width, string): “*”: 在这里用width代替,其实和printf(“% ...

  8. spring中bean的高级属性之list, set, map以及props元素(含举例)

    转自:http://qingfeng825.iteye.com/blog/144704 list, set, map和props元素分别用来设置类型为List,Set,Map和Propertis的属性 ...

  9. elasticsearch启动问题

    ES安装完一直启动不了,问题解决. 报错: ERROR: bootstrap checks failed system call filters failed to install; check th ...

  10. React Native 安卓模拟器调出Dev Setting

    Android Studio 模拟器调出Dev Setting 实现热更新 cmd进入项目目录 F:\study\AwesomeProject> 执行 adb shell input keyev ...