排序列表<Map<String,Object>>

4
我有以下对象:
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();

如何基于Map中的值("Object")进行排序?

3个回答

8
创建自己的比较器并使用它。
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
Collections.sort(listMap,new Comparator<Map<String, Object>>() {

            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                //your logic goes here
            }
});

2

使用您自己的比较器(您必须实现给定的接口)


1

使用Java 8解决问题的最简单方法之一是:

Collections.sort(listMap, Comparator.comparing(map -> (String)map.get("key")));

"或者,"
listMap = listMap.stream().sorted(Comparator.comparing(map -> (String)map.get("key"))).collect(Collectors.toList());

注意:我已将key(Object)转换为String。您可以根据自己的需求使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接