根据一个键对HashMap进行排序

时间:2013-01-04 14:26:15

标签: java sorting collections

我有一个Hashmap的ArrayList,其中包含name,phoneNo,Date,Age等键....

我想根据日期字段对Hashmap进行排序。

如果我使用LinkedHashMap,那么它也没用,因为我以随机方式获取值。

我不能使用对象而不是HashMap,因为我不知道会得到多少条目。我动态地放置键和值。

1 个答案:

答案 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);
        }
    });

但是这真的闻起来像对象拒绝。为什么不为这些数据创建一个真实的对象?如果经常出现这种排序,你甚至可以将它变成可比较的。