java8 stream排序集合
时间: 2023-07-23 18:05:29 浏览: 49
在Java 8中,你可以使用`Stream`来对集合进行排序。下面是一个示例,展示了如何`Stream`对一个整数集合进行排序:
```java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class StreamSorting {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
numbers.add(1);
numbers.add(10);
// 使用Stream排序
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println("排序前的集合:" + numbers);
System.out.println("排序后的集合:" + sortedNumbers);
}
}
```
在上面的例子中,首先创建一个整数集合`numbers`,然后使用`stream()`方法将其转换为一个`Stream`对象。接着,使用`sorted()`方法对元素进行排序,该方法会返回一个已排序的`Stream`对象。最后,使用`collect()`方法将排序后的元素收集到一个新的`List`中。
在控制台上,你将看到排序前和排序后的集合输出结果。
如果你想要按照自定义的排序规则进行排序,可以传递一个自定义的比较器给`sorted()`方法。例如,如果你想按照数字从大到小的顺序排序,可以使用以下代码:
```java
List<Integer> sortedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
```
这里使用了`Comparator.reverseOrder()`方法来创建一个逆序的比较器。