.stream().sorted把条件为""的排后面
时间: 2024-03-15 22:45:36 浏览: 42
对于一个字符串列表,要将其中的空字符串排在后面,可以使用如下代码:
```java
List<String> list = Arrays.asList("apple", "", "banana", "orange", "");
List<String> sortedList = list.stream()
.sorted(Comparator.comparing(String::isEmpty, Comparator.naturalOrder()))
.collect(Collectors.toList());
sortedList.forEach(System.out::println);
```
上述代码使用`.sorted()`方法对字符串列表进行排序,使用`Comparator.comparing()`指定按照字符串是否为空进行排序,使用`Comparator.naturalOrder()`将空字符串排在后面。
输出结果为:
```
apple
banana
orange
```
可以看到,空字符串已经被排在了最后。
相关问题
.stream().sorted把条件空的排后面
是的,使用`.sorted()`方法可以对流中的元素进行排序,而使用`.sorted(Comparator.nullsLast())`则可以将空元素放在排序后面。例如,以下代码将一个字符串列表按照字符串长度排序,将空字符串放在最后:
```
List<String> list = Arrays.asList("apple", "", "banana", "orange", null);
list.stream()
.sorted(Comparator.comparingInt(s -> s == null ? 0 : s.length())
.thenComparing(Comparator.nullsLast(String.CASE_INSENSITIVE_ORDER)))
.forEach(System.out::println);
```
输出结果为:
```
banana
apple
orange
null
```
.stream().sorted
在Java中,`.stream().sorted()`是用于对一个流进行排序的操作。排序可以是升序或降序,具体取决于是否使用了`Comparator`类的方法。以下是一些示例代码:
1. 升序排序:
```
list.stream().sorted()
```
这将对流中的元素进行自然排序。
2. 降序排序:
```
list.stream().sorted(Comparator.reverseOrder())
```
这将对流中的元素进行逆序排序。
3. 使用自定义比较器排序:
```
list.stream().sorted(Comparator.comparing(Student::getAge))
```
这将根据`Student`对象的`age`属性对流中的元素进行升序排序。
4. 使用多个字段进行排序:
```
userList.stream()
.sorted(Comparator.comparing(userInfo::getAge).thenComparing(userInfo::getMoney))
.collect(Collectors.toList());
```
这将根据`userInfo`对象的`age`属性进行升序排序,如果`age`相同,则根据`money`属性进行升序排序。
总之,`.stream().sorted()`方法可以根据需要对流中的元素进行排序,可以是自然排序、逆序排序或使用自定义比较器进行排序。