java8 stream流时空值排序
时间: 2023-09-24 08:14:01 浏览: 117
要对Stream中的元素进行排序,可以使用sorted方法,它有两个重载版本:
1. sorted():根据元素的自然顺序进行排序;
2. sorted(Comparator<? super T> comparator):使用指定的比较器进行排序。
如果Stream中的元素可能为空,需要先过滤掉空值再进行排序。可以使用filter方法过滤掉空值,然后再使用sorted方法进行排序。
下面是一个示例代码,演示了如何对Stream中的元素进行排序(包括空值):
```java
import java.util.Arrays;
import java.util.Comparator;
public class StreamSortDemo {
public static void main(String[] args) {
String[] arr = {"apple", null, "banana", "orange", null, "pear"};
Arrays.stream(arr)
.filter(s -> s != null)
.sorted(Comparator.naturalOrder())
.forEach(System.out::println);
}
}
```
输出结果为:
```
apple
banana
orange
pear
```
在这个示例中,首先使用Arrays.stream方法将数组转换为Stream。然后使用filter方法过滤掉空值,最后使用sorted方法按照自然顺序进行排序。由于自然顺序是升序排序,所以输出结果也是升序排列的。
阅读全文