-5

我有一个 Hashmap 的 ArrayList,其中有诸如 name、phoneNo、Date、Age 之类的键。

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

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

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

4

1 回答 1

5

您需要制作一个比较器,在哈希图中挑选出“日期”的值,然后使用它进行比较。

    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。

于 2013-01-04T14:28:48.090 回答