$show=/label

How to remove all duplicates from a List in Java 8?

SHARE:

Learn the different ways to remove all duplicates from the list or ArrayList in plain java and java 8 streams.

1. Overview

In this article, you'll explore the different ways to clean up and remove duplicates from the list and ArrayList.

Let us see the example programs using plain java and java 8 stream api lambda expressions.


2. Removing Duplicates Using Plain Java

A simple way is to remove the duplicates to clean up the list using List.contains() method. Create a new list and Pass every value of the original list to the contains() method on a new list. Returns false if the current value is not present in the new list and add the value to the new list. if returns false means that value is already present in the list and skip the value-adding to the new list.

Example:

import java.util.ArrayList;
import java.util.List;

public class RemoveDuplicatesContains {

	public static void main(String[] args) {

		// Creating a new list
		List<String> originalList = new ArrayList<>();
		
		// Adding duplicate values
		originalList.add("A");
		originalList.add("B");
		originalList.add("C");
		originalList.add("C");
		originalList.add("B");
		originalList.add("A");
		
		// printing the original list
		System.out.println("Original list values : "+originalList);
		
		// created a new list to add only unique values
		List<String> newList = new ArrayList<>();
		
		// filtering the duplicates from the 
		originalList.forEach(eachValue -> {
			if(!newList.contains(eachValue)) {
				newList.add(eachValue);
			}
		});
		
		// printing the cleaned list without duplicatesa
		System.out.println("newlist values are : "+newList);

	}
}

Output:

Original list values : [A, B, C, C, B, A]
newlist values are : [A, B, C]

3. Removing Duplicates Using LinkedHashSet

Next, use LinkedHashSet to remove the duplicates and preserve the order as in the original list. LinkedHashSet is a collection api Set interface. Set interface implementation such as HashSet or LinkedHashSet. But, many developers use HashSet rather than LinkedHashSet.

Example:

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class RemoveDuplicatesLinkedHashSet {

	public static void main(String[] args) {

		// Creating a new list
		List<String> originalList = new ArrayList<>();

		// Adding duplicate values
		originalList.add("A");
		originalList.add("B");
		originalList.add("C");
		originalList.add("C");
		originalList.add("B");
		originalList.add("A");

		// printing the original list
		System.out.println("Original list values : " + originalList);

		// Creating linkedhashset object
		Set<String> linkedSet = new LinkedHashSet<>();

		// adding list values to set
		linkedSet.addAll(originalList);

		// removing all values from list
		originalList.clear();

		// add all values from set to list.
		originalList.addAll(linkedSet);

		// printing the cleaned list without duplicates
		System.out.println("originalList values ater removing duplicates  : " + originalList);

	}
}

Output:

Original list values : [A, B, C, C, B, A]
originalList values ater removing duplicates  : [A, B, C]

4. Remove Duplicates From a List Using Java 8 Lambdas

Let us look at the new JDK 8 lambda expressions and Stream api's distinct() method to remove duplicates.

distinct() method internally calls equals() method on each value and filters the duplicates objects.

In our example, we are adding Strings to the list so equals() method of String class will be called. If you are passing the Custom objects then you need to override the equals() method in the custom class as per needed.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class RemoveDuplicatesJava8Distinct {

	public static void main(String[] args) {

		// Creating a new list
		List<String> originalList = new ArrayList<>();

		// Adding duplicate values
		originalList.add("A");
		originalList.add("B");
		originalList.add("C");
		originalList.add("C");
		originalList.add("B");
		originalList.add("A");

		// printing the original list
		System.out.println("Original list values : " + originalList);

		// Java 8 Stream API - distinct() method used
		originalList = originalList.stream().distinct().collect(Collectors.toList());

		// printing the cleaned list without duplicates
		System.out.println("Removed duplicates with java 8 api : " + originalList);

	}
}

Output:

Original list values : [A, B, C, C, B, A]
Removed duplicates with java 8 api : [A, B, C]

5. Conclusion

In this article, you've seen the 3 different ways to remove all duplicates from ArrayList with examples programs.

All are over GitHub.

distinct example

COMMENTS

BLOGGER

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,18,Arrays,24,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,8,Collections,37,Collector,1,Command Line,1,Comparator,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,149,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,38,Dictionary,1,Difference,2,Download,1,Eclipse,3,Efficiently,1,Error,1,Errors,1,Exceptions,8,Fast,1,Files,17,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,9,Grant,1,Grep,1,HashMap,2,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,6,Iterate,2,Jackson API,3,Java,32,Java 10,1,Java 11,6,Java 12,5,Java 13,2,Java 14,2,Java 8,128,Java 8 Difference,2,Java 8 Stream Conversions,4,java 8 Stream Examples,12,Java 9,1,Java Conversions,14,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,114,Java Spark,1,java.lang,4,java.util. function,1,JavaScript,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,2,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,3,Math,1,Matrix,6,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,31,String,61,String Programs,28,String Revese,1,StringBuilder,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,26,Unix,3,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: How to remove all duplicates from a List in Java 8?
How to remove all duplicates from a List in Java 8?
Learn the different ways to remove all duplicates from the list or ArrayList in plain java and java 8 streams.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ-HvkhIii4NL4rs30WI-tqCVRlR4zUBGu-N_FwabPXO0nJ620S4WrDd-xQoIirsAMZu83bQNZhS3qIMDW5S77roULet37vb4PBTlwmZbEhR0dPHnhbhHPRIeUMpctd8HLkfk7gLYjfjM/w640-h404/+How+to+remove+all+duplicates+from+a+List+in+Java+8%253F.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ-HvkhIii4NL4rs30WI-tqCVRlR4zUBGu-N_FwabPXO0nJ620S4WrDd-xQoIirsAMZu83bQNZhS3qIMDW5S77roULet37vb4PBTlwmZbEhR0dPHnhbhHPRIeUMpctd8HLkfk7gLYjfjM/s72-w640-c-h404/+How+to+remove+all+duplicates+from+a+List+in+Java+8%253F.png
JavaProgramTo.com
https://www.javaprogramto.com/2020/08/java-remove-duplicates-from-list.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2020/08/java-remove-duplicates-from-list.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content