【发布时间】:2011-03-08 10:32:02
【问题描述】:
我有以下对象
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
如何根据 Map 中的值 ("Object") 对其进行排序?
【问题讨论】:
标签: java sorting collections
我有以下对象
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
如何根据 Map 中的值 ("Object") 对其进行排序?
【问题讨论】:
标签: java sorting collections
创建您自己的Comparator 并使用它。
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
}
});
【讨论】:
使用你自己的比较器(你必须实现给定的接口)
【讨论】:
使用 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());
注意:我已将键(对象)转换为字符串。您可以根据自己的要求使用。
【讨论】: