Stream sorted(比较器比较器)返回一个包含此流元素的流,并根据提供的Comparator对其进行排序。对于有序流,sort方法是稳定的,但对于无序流,则不能保证稳定性。这是有状态的中间操作,即在处理新元素时,它可以合并先前看到的元素的状态。在Java 8中,可以使用lambda表达式实例化Comparator。我们还可以颠倒自然顺序以及Comparator提供的顺序。句法:
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
相关用法
- Java Collectors maxBy(Comparator comparator)用法及代码示例
- Java Collectors minBy(Comparator comparator)用法及代码示例
- Java PriorityQueue comparator()用法及代码示例
- Java TreeSet comparator()用法及代码示例
- Java PriorityBlockingQueue comparator()用法及代码示例
- Java TreeMap comparator()用法及代码示例
- Java ConcurrentSkipListSet comparator()用法及代码示例
- Java Comparator thenComparingDouble()用法及代码示例
- Java Comparator thenComparingLong()用法及代码示例
- Java Comparator thenComparingInt()用法及代码示例
- Java Comparator nullsFirst()用法及代码示例
- Java Comparator comparingLong()用法及代码示例
- Java Comparator naturalOrder()用法及代码示例
- Java Comparator reverseOrder()用法及代码示例
- Java SortedMap comparator()用法及代码示例
注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 Stream sorted (Comparator comparator) method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。