流排序(比较器比较器) 返回由该流的元素组成的流,并根据 提供比较器 .对于有序流,排序方法是稳定的,但对于无序流,不保证稳定性。这是一个 有状态中间操作 i、 在处理新元素时,它可能会合并以前看到的元素的状态。在Java8中,比较器可以使用 lambda表达式 我们还可以反转自然顺序以及比较器提供的顺序。 语法:
null
Stream<T> sorted(Comparator<? super T> comparator) Where, Stream is an interface and T is the type of stream elements. comparator is used to compare stream elements.
下面给出一些例子,以更好地理解函数的实现。
例1:
// Implementation of Stream.sorted() // to get a stream of sorted elements // according to the provided Comparator import java.util.*; import java.util.stream.Stream; class GFG { // Driver code public static void main(String[] args) { // Creating a list of Integers List<Integer> list = Arrays.asList( 5 , - 10 , 7 , - 18 , 23 ); System.out.println( "The sorted stream according " + "to provided Comparator is : " ); // Displaying the list of Strings in // reverse order after sorting list.stream().sorted(Comparator.reverseOrder()). forEach(System.out::println); } } |
输出:
The sorted stream according to provided Comparator is : 23 7 5 -10 -18
例2:
// Implementation of Stream.sorted() // to get a stream of sorted elements // according to the provided Comparator import java.util.*; import java.util.stream.Stream; class GFG { // Driver code public static void main(String[] args) { // Creating a list of Strings List<String> list = Arrays.asList( "Geeks" , "for" , "GeeksforGeeks" , "GeeksQuiz" , "GFG" ); System.out.println( "The sorted stream according " + "to provided Comparator is : " ); // Displaying the list of Strings in // reverse order after sorting list.stream().sorted(Comparator.reverseOrder()). forEach(System.out::println); } } |
输出:
The sorted stream according to provided Comparator is : for GeeksforGeeks GeeksQuiz Geeks GFG
例3:
// Implementation of Stream.sorted() // to get a stream of sorted elements import java.util.*; import java.util.stream.Stream; class GFG { // Driver code public static void main(String[] args) { // Creating an array of Strings String[] array = { "GFG" , "Geeks" , "for" , "GeeksforGeeks" , "GeeksQuiz" }; System.out.println( "The sorted stream is :" ); // sorting the elements of array based // on their last character Stream.of(array).sorted((str1, str2) -> Character.compare(str1 .charAt(str1.length() - 1 ), str2.charAt(str2.length() - 1 ))) . forEach(System.out::println); } } |
输出:
The sorted stream is : GFG for Geeks GeeksforGeeks GeeksQuiz
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END