【发布时间】:2025-11-29 23:25:02
【问题描述】:
我有这种格式的日期:
Key Value
13:00:08 : 3
13:00:08 : 2
13:00:08 : 2
13:00:06 : 2
13:00:08 : 2
13:00:09 : 1
13:00:07 : 2
13:00:09 : 3
我将时间戳转换为秒。然后根据时间戳,我必须对数据进行排序。
我尝试使用TreeMap,但它会删除重复项。我试过HashMap,但它删除了重复项。 MultiMap 在这里不起作用。
我试过的代码是:
Map<Integer, Integer> map = new TreeMap<Integer, Integer>(tmap);
System.out.println("After Sorting:");
Set set2 = map.entrySet();
Iterator iterator2 = set2.iterator();
while(iterator2.hasNext()) {
Map.Entry me2 = (Map.Entry)iterator2.next();
System.out.print(me2.getKey() + ": ");
System.out.println(me2.getValue());
}
如何进行排序?
【问题讨论】:
-
首先,不要使用原始类型
-
数据从何而来?你是怎么填地图的?
-
数据来自监听器,它监听消息并将其写入文件。我只是通过读取在收听后写入消息的文件来填充地图。
-
开箱即用的 java 映射不接受重复键。由于您的键和值都有重复项,您可能希望使用自定义类来保存键值,通过键和值定义(不)相等性,通过时间戳比较定义可比性,并使用键添加类的实例/ 值到一个列表中,然后您可以通过
Collections实用程序方法对其进行排序。
标签: java hashmap treemap multimap linkedhashset