Java11 List<Map<Object,Object>> 中的三个汉字字段以及一个double字段类型进行连续排序 汉字字段先排
时间: 2023-11-11 21:03:56 浏览: 43
可以使用Java 8+的Stream API进行排序,可以按照以下方式排序:
```java
List<Map<Object, Object>> list = new ArrayList<>();
// 添加数据到list中
// 按照汉字字段1、汉字字段2、汉字字段3、double字段进行排序
Comparator<Map<Object, Object>> comparator = Comparator.comparing(m -> (String) m.get("汉字字段1"))
.thenComparing(m -> (String) m.get("汉字字段2"))
.thenComparing(m -> (String) m.get("汉字字段3"))
.thenComparingDouble(m -> (Double) m.get("double字段"));
// 对list进行排序
list.sort(comparator);
```
其中,`Comparator.comparing()`方法可以按照指定的字段进行排序,`thenComparing()`方法可以在前一个排序条件相等的情况下按照后一个排序条件进行排序,`thenComparingDouble()`方法可以按照double类型的字段进行排序。
相关问题
List<Map<Object,Object>> 中的三个汉字字段以及一个double字段类型进行连续排序 汉字字段先排
可以使用 Java 8 的 Comparator 来进行排序,具体代码如下:
```java
List<Map<Object, Object>> list = new ArrayList<>();
// 假设数据格式为:{name: String, age: double}
Comparator<Map<Object, Object>> comparator = Comparator
.comparing((Map<Object, Object> map) -> (String) map.get("name"))
.thenComparing((Map<Object, Object> map) -> (String) map.get("field2"))
.thenComparingDouble((Map<Object, Object> map) -> (Double) map.get("field3"));
list.sort(comparator);
```
上面的代码使用了 `comparing` 方法来按照汉字字段排序,使用了 `thenComparing` 方法来进行连续排序,最后使用了 `thenComparingDouble` 方法来按照 double 类型字段排序。
List<Map<Object,Object>> 中的三个汉字字段以及一个double字段类型进行连续排序 汉字字段先排 根据Java11的特性写
可以使用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进行排序。