lambda对list数据一正一负排序
时间: 2024-11-11 18:06:42 浏览: 19
Lambda表达式可以简洁地用于对List数据进行排序,特别是当需要基于元素值的一正一负特性进行自定义排序时。在Java 8及更高版本中,我们可以利用`Collections.sort()`方法结合lambda,例如:
```java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class LambdaSort {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
// 添加一些正数和负数
list.add(5);
list.add(-3);
list.add(0);
list.add(-2);
list.add(10);
// 使用lambda表达式进行正负交替排序
list.sort(Comparator.comparingInt(i -> i < 0 ? -1 : 1));
System.out.println("Sorted list: " + list);
}
}
```
在这个例子中,`Comparator.comparingInt(i -> i < 0 ? -1 : 1)`是一个lambda表达式,它创建了一个比较器,如果元素是负数则返回-1表示升序排列(因为负数小于正数),如果是正数则返回1表示降序排列。所以列表会先排所有负数,然后是正数。
阅读全文