【问题标题】:Sort Map<String, List<Object[]>> [closed]排序 Map<String, List<Object[]>> [关闭]
【发布时间】:2017-01-02 12:08:38
【问题描述】:

有没有一种有效的方法来对具有 List 作为值的 Java Map 进行排序? 我有字符串作为键,我正在尝试对对象列表中的值进行排序。

Map<String, List<Object[]>> liste = new TreeMap<String, List<Object[]>>();

【问题讨论】:

  • 您想对地图的每个条目的值(列表)进行排序?
  • 提供一个样本数据,您需要根据什么进行排序?
  • 没错,我需要按 id 值对它们进行排序,即 Integer。因此,对于每个键,我的对象列表中都有 Integer 和 String 值,我需要按 id 对它们进行排序,从最低数字到最高
  • 如果您只是想对列表而不是地图本身进行排序,只需遍历地图条目集并对每个值调用排序方法。
  • 我认为最好的方法是在将它们添加到 map 之前进行排序,或者为您自己的 Map with List 实现创建自己的结构和比较器。

标签: java sorting dictionary


【解决方案1】:

这将按第一个数组条目中的Integer 对象对列表进行排序:

    for (List<Object[]> list : liste.values()) {
        list.sort(Comparator.comparingInt(arr -> ((Integer) arr[0]).intValue()));
    }

在我看来,你的设计工作没有做好?对于大多数应用程序,您不需要使用Object[]。最好设计自己的类,带有int(或Integerid 和其他字段。另外你的数据和要求对我来说并不完全清楚,所以我希望我和你在同一条轨道上。

【讨论】:

  • 是的,你帮了忙。 tnx 很多
猜你喜欢
  • 2018-09-22
  • 2020-08-01
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 2020-01-26
  • 1970-01-01
  • 2021-03-26
相关资源
最近更新 更多