java list排序负数放到最后
时间: 2024-08-13 22:03:16 浏览: 105
java常见八种排序算法
在 Java 中,如果你有一个 List 类型的集合,并希望将其中的负数元素移动到所有正数元素之后,你可以使用 Stream API 的sorted()函数配合Comparator。首先创建一个自定义的Comparator,然后对List进行排序。以下是示例代码:
```java
import java.util.*;
class NumberWithSign {
int value;
boolean isNegative;
// 构造方法省略...
}
// 创建一个 List<NumberWithSign>
List<NumberWithSign> numberList = ...;
// 自定义Comparator,比较值和是否为负数
Comparator<NumberWithSign> comparator = (a, b) -> {
if (a.isNegative && !b.isNegative) {
return 1; // 负数放在正数前面
} else if (!a.isNegative && b.isNegative) {
return -1; // 正数放在负数后面
} else { // 同样都是正或负,按值大小排序
return a.value - b.value;
}
};
// 使用Collections.sort()或者stream().sorted()对list进行排序
Collections.sort(numberList, comparator);
```
这样,`numberList`就会按照负数在前,正数在后的顺序排列。注意这个例子假设`NumberWithSign`类有一个布尔字段表示数字的正负。
阅读全文