我有一个 Hashmap 的 ArrayList,其中有诸如 name、phoneNo、Date、Age 之类的键。
我想根据日期字段对 Hashmap 进行排序。
如果我使用 LinkedHashMap,那么它也没有用,因为我以随机方式获取值。
我不能使用对象代替 HashMap,因为我不知道我会得到多少条目。我正在动态放置键和值。
我有一个 Hashmap 的 ArrayList,其中有诸如 name、phoneNo、Date、Age 之类的键。
我想根据日期字段对 Hashmap 进行排序。
如果我使用 LinkedHashMap,那么它也没有用,因为我以随机方式获取值。
我不能使用对象代替 HashMap,因为我不知道我会得到多少条目。我正在动态放置键和值。
您需要制作一个比较器,在哈希图中挑选出“日期”的值,然后使用它进行比较。
Collections.sort(list, new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> map1, Map<String, Object> map2) {
Date date1 = (Date) map1.get("Date");
Date date2 = (Date) map2.get("Date");
return date1.compareTo(date2);
}
});
但这闻起来像拒绝对象。为什么不为这些数据创建一个真实的对象?如果这种排序经常出现,您甚至可以将其设为 Comparable。