List<Map<Object,Object>> 中的三个汉字字段以及一个double字段类型进行连续排序 汉字字段先排 根据Java11的特性写
时间: 2024-03-13 21:18:11 浏览: 53
List<map>多字段组合排序
5星 · 资源好评率100%
可以使用Java 11中新增的Comparator的comparing方法来实现多字段排序,示例代码如下:
```
List<Map<Object, Object>> list = new ArrayList<>();
// 假设Map中有三个键为"name"、"age"、"salary"的字段
Comparator<Map<Object, Object>> comparator = Comparator.comparing((Map<Object, Object> item) -> (String) item.get("name"))
.thenComparing((Map<Object, Object> item) -> (String) item.get("address"))
.thenComparing((Map<Object, Object> item) -> (String) item.get("phone"))
.thenComparingDouble((Map<Object, Object> item) -> (Double) item.get("salary"));
Collections.sort(list, comparator);
```
上述代码中,首先使用comparing方法传入一个Lambda表达式,返回Map中名为"name"的字符串字段,实现按照汉字字段进行排序;然后使用thenComparing方法依次传入两个Lambda表达式,分别返回Map中名为"address"和"phone"的字符串字段,实现按照多个汉字字段进行排序;最后使用thenComparingDouble方法传入一个Lambda表达式,返回Map中名为"salary"的double字段,实现按照double字段进行排序。最终调用Collections.sort方法对List进行排序。
阅读全文