java中集合根据布尔值排序false在前
时间: 2024-09-27 20:10:35 浏览: 7
在Java中,如果你想根据某个属性的布尔值对集合进行排序,并让`false`排在前面,你可以使用`Comparator`接口或者自定义比较器(`Comparator<T>`)。这里是一个基本的例子:
```java
import java.util.*;
class MyClass {
// 假设有一个名为isSorted的布尔属性
private boolean isSorted;
// ...其他字段...
}
List<MyClass> list = ... // 填充你的列表
// 使用lambda表达式和Collections.sort()
list.sort(Comparator.comparing(MyClass::isSorted).thenComparing(o -> o.getName() != null ? o.getName().compareTo("default") : 0));
// 或者使用自定义比较器
Collections.sort(list, new Comparator<MyClass>() {
@Override
public int compare(MyClass obj1, MyClass obj2) {
if (obj1.isSorted() && !obj2.isSorted()) return -1;
else if (!obj1.isSorted() && obj2.isSorted()) return 1;
else return obj1.getName().compareTo(obj2.getName());
}
});