How to Filter Distinct Elements from a Collection in Java 8

A collection might contain duplicate entries. What if we wanted to display the collection as distinct elements? In other words, we wish to filter the collection so that only distinct elements are displayed. This goal can be accomplished by applying the distinct method to the stream produced from the collection. To learn how to filter distinct elements from a collection, follow these four steps.

  1. Open your text editor and create the Java program that will create the stream and apply the distinct method. Type in the following Java statements:
    import java.util.*;
    public class FilterDistinctElements {
    	private static List names=new ArrayList<>();
    	static {
    	public static void main (String args[]) {
    		System.out.println("Collection without filtering distinct elements: ");;
    		System.out.println("Collection filtering distinct elements: ");;
    The stream will be created from the ArrayList that is defined on line 4. Note that a static block is used to add elements to the ArrayList. A static block is executed one time when the program is loaded into memory. Note that the ArrayList contains duplicate names (e.g., "George"). The program will remove the duplicates by applying the distinct method. Prior to that operation, the program displays all names in the collection. I have highlighted the distinct method in the image below:
    Java Source for Distinct Method
  2. Save your file as
  3. Open a command prompt and navigate to the directory containing your new Java program. Then type in the command to compile the source and hit Enter.
    Compile Program with Distinct Method
  4. You are ready to test your Java program. Type in the command to run the Java runtime launcher and hit Enter. The output displays the collection before and after applying the distinct method to remove duplicate names.
    Run Program with Distinct Method
Author: Stephen Withrow

Stephen has over 30 years of experience in training, development, and consulting in a variety of technology areas including Python, Java, C, C++, XML, JavaScript, Tomcat, JBoss, Oracle, and DB2. His background includes design and implementation of business solutions on client/server, Web, and enterprise platforms. Stephen has a degree in Computer Science and Physics from Florida State University.

About Webucator

Webucator provides instructor-led training to students throughout the US and Canada. We have trained over 90,000 students from over 16,000 organizations on technologies such as Microsoft ASP.NET, Microsoft Office, Azure, Windows, Java, Adobe, Python, SQL, JavaScript, Angular and much more. Check out our complete course catalog.