关于向HashMap存放数据出现顺序混乱的问题

摘要:
:完全不正常。这是因为HashMap在存储时不保证顺序。解决方案是用linkedhaspmap替换HashMap。结果是:也可以使用Treemap,但打印结果正好相反:

      在开发中需要用到了向Map中遍历存放一些时间日期的操作,dmo如下

关于向HashMap存放数据出现顺序混乱的问题第1张

测试的时间是2018.12.15,这个demo的原意是想获取从今天起的前三十天的所有日期(包括今天),然后存在“map”这个HashMap中,最后打印出来 理论上应该是20181215  20181214  20181213 20181212.....这样一天天往回倒过去

但实际结果是。。。:

关于向HashMap存放数据出现顺序混乱的问题第2张

完全不是按照顺序的,这是因为hashMap是不会保证你存放时的顺序的,解决方案是,将hashmap替换为linkedhaspmap

关于向HashMap存放数据出现顺序混乱的问题第3张

结果为:

关于向HashMap存放数据出现顺序混乱的问题第4张

也可以使用treemap,但是打印出来的结果是正好反着的:

关于向HashMap存放数据出现顺序混乱的问题第5张

关于向HashMap存放数据出现顺序混乱的问题第6张

免责声明:文章转载自《关于向HashMap存放数据出现顺序混乱的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jquery应用图片拖拽排序工控安全入门之Ethernet/IP下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Map/HashMap 获取Key值的方法

1、通过 KeySet()方法 Map<String,Student> newmap = new HashMap<String,Student>(); //newmap HaspMap类型的集合 有唯一的Key,一个Key对应相应的学生 Student stu = new Student("11","Mary","...

HashMap在并发下可能出现的问题分析

我们都知道,HashMap在并发环境下使用可能出现问题,但是具体表现,以及为什么出现并发问题,可能并不是所有人都了解,这篇文章记录一下HashMap在多线程环境下可能出现的问题以及如何避免。 在分析HashMap的并发问题前,先简单了解HashMap的put和get基本操作是如何实现的。 1.HashMap的put和get操作 大家知道HashMap内部实...

HashMap源码和并发异常问题分析

要点源码分析 HashMap允许键值对为null;HashTable则不允许,会报空指针异常; HashMap<String, String> map= new HashMap<>(2); map.put(null,null); map.put("1",null); Hash...

第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257             由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo。实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交...

Java 容器详解

一.Java 容器都有哪些? Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示: Collection List ArrayList LinkedList Vector Stack Set HashSet LinkedHashSet TreeSet Map HashMap LinkedHashMap TreeMap...

集合(六)LinkedHashMap

上两篇文章讲了HashMap和HashMap在多线程下引发的问题,说明了,HashMap是一种非常常见、非常有用的集合,并且在多线程情况下使用不当会有线程安全问题。 大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。HashMap的...