distinct() returns a stream consisting of distinct elements in a stream. distinct() is the method of Stream interface. This method uses hashCode() and equals() methods to get distinct elements. In case of ordered streams, the selection of distinct elements is stable. But, in case of unordered streams, the selection of distinct elements is not necessarily stable and can change. distinct() performs stateful intermediate operation i.e, it maintains some state internally to accomplish the operation.
Syntax :
Stream<T> distinct() Where, Stream is an interface and the function returns a stream consisting of the distinct elements.
Below given are some examples to understand the implementation of the function in a better way.
Example 1 :
// Implementation of Stream.distinct() // to get the distinct elements in the List import java.util.*; class GFG { // Driver code public static void main(String[] args) { // Creating a list of integers List<Integer> list = Arrays.asList( 1 , 1 , 2 , 3 , 3 , 4 , 5 , 5 ); System.out.println( "The distinct elements are :" ); // Displaying the distinct elements in the list // using Stream.distinct() method list.stream().distinct().forEach(System.out::println); } } |
Output :
The distinct elements are : 1 2 3 4 5
Example 2 :
// Implementation of Stream.distinct() // to get the distinct elements in the List import java.util.*; class GFG { // Driver code public static void main(String[] args) { // Creating a list of strings List<String> list = Arrays.asList( "Geeks" , "for" , "Geeks" , "GeeksQuiz" , "for" , "Lazyroar" ); System.out.println( "The distinct elements are :" ); // Displaying the distinct elements in the list // using Stream.distinct() method list.stream().distinct().forEach(System.out::println); } } |
Output :
The distinct elements are : Geeks for GeeksQuiz Lazyroar
Example 3 :
// Implementation of Stream.distinct() // to get the count of distinct elements // in the List import java.util.*; class GFG { // Driver code public static void main(String[] args) { // Creating a list of strings List<String> list = Arrays.asList( "Geeks" , "for" , "Geeks" , "GeeksQuiz" , "for" , "Lazyroar" ); // Storing the count of distinct elements // in the list using Stream.distinct() method long Count = list.stream().distinct().count(); // Displaying the count of distinct elements System.out.println( "The count of distinct elements is : " + Count); } } |
Output :
The count of distinct elements is : 4