我有一个Hashmap的ArrayList,其中包含name,phoneNo,Date,Age等键....
我想根据日期字段对Hashmap进行排序。
如果我使用LinkedHashMap,那么它也没用,因为我以随机方式获取值。
我不能使用对象而不是HashMap,因为我不知道会得到多少条目。我动态地放置键和值。
答案 0 :(得分:5)
你需要制作一个比较器,在hashmap中选出“Date”的值,然后用它进行比较。
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);
}
});
但是这真的闻起来像对象拒绝。为什么不为这些数据创建一个真实的对象?如果经常出现这种排序,你甚至可以将它变成可比较的。