java - 按映射中的特定键对 List<Map<String, Object>> 进行排序

标签 java json list arraylist hashmap

我有一个列表,其内容是带有字符串键和值(如果类型为 String 或 Long)的 Map。

[{
  "name": "Abc",
  "id": 1522047548000
},
{
  "name": "Xyz",
  "id": 1522048221000
}]

如何对列表进行排序

  1. 基于很长的 id
  2. 基于字符串名称

最佳答案

从 JAVA 1.8 开始,java.util.Comparator 中有一个名为“比较”的新方法。 它返回通过给定键比较对象的比较器。 https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#comparing-java.util.function.Function-

在这种情况下,按名称进行比较,如下所示:

 list.sort(Comparator.comparing(o -> String.valueOf(o.get("name"))));

并按 id 进行比较:

 list.sort(Comparator.comparing(o -> (Long) o.get("id")));

关于java - 按映射中的特定键对 List<Map<String, Object>> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49644888/

相关文章:

java - 使用 Java 的 Google 云语音

java - 获取随机 getmapASync 空指针异常

java - jackson :反序列化为每个值都具有正确类型的 Map<String, Object>

jquery - 如何不断检查 <div> 中新的 <li> 元素?

java - 使用比较器对列表名称和日期进行排序

python从列表中选择特定元素

java - 如何在代码中提取maven代理

java - 在 borderpane 中心加载新的 fxml

android - JSON 解析器安卓

json - 具有 50 个 CIDR IP 的安全组的 Cloudformation 模板(JSON)(入口)