根据一个键对HashMap进行排序

vik*_*s27 -5 java sorting collections

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

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

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

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

Joe*_*ckx 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);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但这有点像对象拒绝.为什么不为这些数据创建一个真实的对象?如果这种排序经常出现,你甚至可以使它具有可比性.