使用java的stream流进行排序,排序条件,根据A字段进行升序,当两条数据A字段相同时,根据B字段按自定义规则进行排序
时间: 2024-03-03 19:48:38 浏览: 109
快速排序2.java 使用java来实现
好的,您可以使用以下代码:
```java
list.stream()
.sorted(Comparator.comparing(Data::getA).thenComparing((o1, o2) -> {
if (o1.getB().equals(o2.getB())) {
// 自定义规则
return 0; // 返回0表示相等
} else if (o1.getB().equals("xxx")) {
return -1; // 返回负数表示o1在前
} else if (o2.getB().equals("xxx")) {
return 1; // 返回正数表示o2在前
} else {
return 0; // 其他情况返回0
}
}))
.collect(Collectors.toList());
```
其中,`Data`是您自己定义的数据类,需要根据实际情况修改。`list`是待排序的数据列表。在`sorted`方法中,首先根据`A`字段进行升序排序,然后使用`thenComparing`方法对`B`字段进行二次排序,自定义规则的实现可以根据实际需求修改。最后使用`collect`方法将排序后的结果转换成列表返回。
阅读全文