java 8 中 List 根据某个字符串属性值 排序放在第一位
时间: 2024-02-24 15:57:58 浏览: 175
可以使用 Java 8 的 Stream API 和 Comparator 来实现。具体步骤如下:
1. 使用 Stream API 的 sorted 方法,传入一个 Comparator 对象,来实现排序。
2. 在 Comparator 对象的 compare 方法中,判断两个 List 对象的某个字符串属性值是否相等。如果相等,则返回 0,表示两个对象相等;如果不相等,则根据属性值的大小关系,返回 -1 或 1。
3. 使用 Stream API 的 collect 方法,将排序后的 List 收集为一个新的 List。
下面是示例代码:
```java
List<MyObject> list = ...; // 待排序的 List
String targetValue = "targetValue"; // 目标字符串属性值
List<MyObject> sortedList = list.stream()
.sorted((o1, o2) -> {
if (o1.getStringProperty().equals(targetValue)) {
return -1; // o1 排在前面
} else if (o2.getStringProperty().equals(targetValue)) {
return 1; // o2 排在前面
} else {
return o1.getStringProperty().compareTo(o2.getStringProperty()); // 按属性值大小排序
}
})
.collect(Collectors.toList());
```
其中,MyObject 是待排序的对象类,getStringProperty() 方法返回对象的字符串属性值。请根据实际情况修改代码。
阅读全文