Java Stream distinct() Example

1. Introduction

This tutorial demonstrates the use of the distinct() method in the Java Stream API. The distinct() method is an intermediate operation that returns a stream with duplicate elements removed based on the elements' equals() method. It's particularly useful for filtering out duplicates from collections or streams.

Key Points

1. distinct() filters duplicate elements from the stream.

2. It uses the equals() method of the objects in the stream to determine equality.

3. It is an intermediate operation that can be combined with other stream operations like filter(), map(), and collect().

2. Program Steps

1. Create a Stream of elements.

2. Apply the distinct() method to remove duplicates.

3. Collect or process the results to show the effect of the distinct() operation.

3. Code Program

import java.util.List;

public class StreamDistinctExample {

    public static void main(String[] args) {
        // Stream of strings with duplicates
        Stream<String> stringStream = Stream.of("apple", "banana", "apple", "orange", "banana", "cherry");

        // Removing duplicates
        List<String> distinctFruits = stringStream.distinct().collect(Collectors.toList());
        System.out.println("Distinct fruits: " + distinctFruits);


Distinct fruits: [apple, banana, orange, cherry]


1. Stream.of("apple", "banana", "apple", "orange", "banana", "cherry") creates a stream of strings that includes duplicates.

2. stringStream.distinct() applies the distinct() method to filter out duplicate elements based on their equals() method.

3. collect(Collectors.toList()) collects the results into a list, showcasing the unique elements from the original stream.