Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据日期对HashMap进行排序?_Java_Sorting_Hashmap_Date Sorting - Fatal编程技术网

Java 如何根据日期对HashMap进行排序?

Java 如何根据日期对HashMap进行排序?,java,sorting,hashmap,date-sorting,Java,Sorting,Hashmap,Date Sorting,我正在尝试根据关键字中的日期对该HashMap进行排序 我的哈希映射: Map m=newhashmap()使用a代替。正如已经实现的那样,它将在插入时自动排序 Map<Date, ArrayList> m = new TreeMap<Date, ArrayList>(); 另见: 使用TreeMap而不是HashMap来存储数据,数据将自动排序。欢迎使用堆栈溢出!只是好奇,你为什么重复已经给出的答案?这不是一个“讨论论坛”,人们通常会通过重复或其他方式来确认答案

我正在尝试根据关键字中的日期对该HashMap进行排序

我的哈希映射:

Map m=newhashmap()

使用a代替。正如已经实现的那样,它将在插入时自动排序

Map<Date, ArrayList> m = new TreeMap<Date, ArrayList>();
另见:

使用TreeMap而不是HashMap来存储数据,数据将自动排序。

欢迎使用堆栈溢出!只是好奇,你为什么重复已经给出的答案?这不是一个“讨论论坛”,人们通常会通过重复或其他方式来确认答案。在一个问答网站上,你只需投票或发布一个更好的答案。另请参见。是的,我知道了。我会做得更好。#winces#如果您没有以不变的方式使用这些
Date
s,我会小心尝试在多线程环境中使用它-调用任何对象
get()
方法实际上会改变它所持有的值,因此实际值取决于
set()
s和
get()
s。我宁愿相信JodaTime库…如果我实现日期排序,上面的方法将根据一年的第一天对它们进行排序。虽然我希望基于当前日期进行排序,但我必须实现一个比较器。有标题吗?@Pirate:它是根据时间戳排序的(可通过
Date\getTime()
获得),而不是在一年的第一天。更重要的是,
java.util.Date
没有“一年中的第一天”这样的概念。你的问题是由别的地方引起的。也许
Date
用作键的实例是通过
java.util.Calendar
创建的,而java.util.Calendar确实有“一年中的第一天”的概念。只要按下右上角的“提问”按钮和一个SSCCE就可以得到答案。你是说它是根据当前日期排序的吗?@Pirate:它是根据时间戳排序的,而不是你暗示的每年的第一天。因此,它不是例如2012年1月1日、2013年1月1日、2012年1月2日、2013年1月2日,而是2012年1月1日、2012年1月2日、2013年1月1日、2013年1月2日。这意味着我不必实现比较器,但由于这些日期值存储为键,它们是否需要唯一?我即将发现这一切,写一篇SSCCE。
Map<Date, ArrayList> sortedMap = new TreeMap<Date, ArrayList>(m);