【问题标题】:Sorting List<Map<String, Object>>排序列表<Map<String, Object>>
【发布时间】:2011-03-08 10:32:02
【问题描述】:

我有以下对象

List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();

如何根据 Map 中的值 ("Object") 对其进行排序?

【问题讨论】:

    标签: java sorting collections


    【解决方案1】:

    创建您自己的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
                }
    });
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        使用 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());
        

        注意:我已将键(对象)转换为字符串。您可以根据自己的要求使用。

        【讨论】:

          猜你喜欢
          • 2011-07-06
          • 1970-01-01
          • 1970-01-01
          • 2018-09-22
          • 2020-02-14
          • 1970-01-01
          • 2020-08-01
          • 2014-05-19
          • 1970-01-01
          相关资源
          最近更新 更多