List unique values in java

Java ArrayList get unique values example

Java ArrayList get unique values example shows how to get unique values from ArrayList in Java. The example also shows how to maintain the insertion order of the elements.

How to get unique values from ArrayList in Java (unique elements)?

ArrayList class does not prevent us from adding duplicate values. If you want to get unique values from the ArrayList, you can convert the ArrayList to HashSet which does not allow duplicate values.

Use constructor of HashSet class which accepts Collection as an argument to convert ArrayList to HashSet.

This constructor accepts any collection and creates a new set containing the elements of the specified collection.

Example

How to maintain insertion order while getting unique values from ArrayList?

As you may have observed from the output, the order of the elements retrieved from HashSet is not the same order in which we added elements to the ArrayList. That is because HashSet does not maintain the insertion order of the elements.

Читайте также:  Abstract classes and constructors java

If you want to maintain the insertion order of the elements, you can use LinkedHashSet instead of HashSet. LinkedHashSet maintains the order in which the elements are inserted while retrieving.

How to get unique values from ArrayList using Java 8?

If you are using Java version 8, you can use stream and distinct to get unique values from the ArrayList in just one line as given below.

How to prevent the addition of duplicate elements to the ArrayList?

How about preventing the addition of duplicate elements to the ArrayList in the first place? If you want to add only unique elements to the ArrayList, you should first check if the element already exists in the ArrayList. If the element exists then do not add it, otherwise add it. Use contains method of ArrayList to check whether the element exists in the ArrayList.

As you can see from the output, the element “one” was not added the second time.

Note : contains method of ArrayList class internally uses equals method of argument object to compare them with one another. Since the String class has implemented equals method, the above example worked and it identified the duplicate “one” object. If your ArrayList contains objects of a custom class, then that class must implement equals and hashCode methods to work.

Please let me know your views in the comments section.

About the author

I have a master’s degree in computer science and over 18 years of experience designing and developing Java applications. I have worked with many fortune 500 companies as an eCommerce Architect. Follow me on LinkedIn and Facebook.

Источник

Java: How to find Unique Values in ArrayList (using TreeSet, HashSet)

How to find Unique Values in ArrayList

This tutorial gives you simple way to find unique values in ArrayList using TreeSet and HashSet. HashSet is much faster than TreeSet (constant-time versus log-time for most operations like add, remove and contains) but offers no ordering guarantees like TreeSet.

If you have any of below questions then you are at right place.

  • Get unique values from arraylist in java
  • How to get unique values in List
  • Create an ArrayList of unique values
  • How to Remove Duplicates from ArrayList in Java
  • Distinct value from ArrayList in JAVA
  • How to create an ArrayList of unique values in Java

Let’s get started:

Here is a what we will use in our program:

package crunchify.com.tutorials; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.TreeSet; /** * @author Crunchify.com * How to find Unique Values in ArrayList. * Create your own utility to find unique elements in ArrayList. */ public class CrunchifyUniqueArrayList < public static void main(String[] args) < ListcrunchifyStringList = Arrays.asList("Facebook", "Twitter", "Google", "Facebook", "Google", "Twitter", "Google"); System.out.printf("\n====== Initial list: %s%n", crunchifyStringList); sortList(crunchifyStringList); // Let's create our own utility to find unique elements in ArrayList :) crunchifyPrintUniqueValues(crunchifyStringList, crunchifyStringList.size()); > static void crunchifyPrintUniqueValues(List crunchifyArray, int crunchifySize) < // iterate through all elements System.out.print ("\n\n====== From crunchifyPrintUniqueValues() Method: "); for (int externalLoop = 0; externalLoop < crunchifySize; externalLoop++) < int internalLoop; for (internalLoop = 0; internalLoop < externalLoop; internalLoop++) if (crunchifyArray.get(externalLoop) == crunchifyArray.get(internalLoop)) break; // Print only if it's not printed before if (externalLoop == internalLoop) System.out.print(crunchifyArray.get(externalLoop) + " "); >> public static void sortList(List myList) < // HashSet() constructs a new set containing the elements in the specified collection. // The HashMap is created with default load factor (0.75) and an initial capacity sufficient to contain the elements in the specified collection. SethashSetList = new HashSet(myList); System.out.printf("\n====== Unique values using HashSet: %s", hashSetList); // TreeSet() Constructs a new tree set containing the elements in the specified collection, sorted according to the natural ordering of its elements. // All elements inserted into the set must implement the Comparable interface. // Furthermore, all such elements must be mutually comparable: e1.compareTo(e2) must not throw a ClassCastException for any elements e1 and e2 in the set. Set treeSetList = new TreeSet(myList); System.out.printf("\n====== Unique values using TreeSet: %s", treeSetList); > >

Output:

Here is a Eclipse Console Output. Just run an application as a Java program.

====== Initial list: [Facebook, Twitter, Google, Facebook, Google, Twitter, Google] ====== Unique values using HashSet: [Google, Twitter, Facebook] ====== Unique values using TreeSet: [Facebook, Google, Twitter] ====== From crunchifyPrintUniqueValues() Method: Facebook Twitter Google Process finished with exit code 0

Let me know if you face any issue running this java program.

If you liked this article, then please share it on social media. Have a question or suggestion? Please leave a comment to start the discussion. 👋

Источник

Find Unique and Duplicates Values From Two Lists

Twitter Facebook Google Pinterest

Java program to find out unique and duplicates values as separate list from two lists (ArrayList).

1. Overview

In this tutorial, We’ll learn how to find the unique values from two lists and how to find all common or duplicates values from two lists.

We’ll demonstrate using two ArrayList’s to find out unique and duplicates objects in it.

To achieve our requirement, we must compare values in both list. Either we can run the loop through each list or we can use list api built in methods. We’ll explore using built in api methods such as contains(), retailAll() and removeAll() methods.

Find Unique and Duplicates From Two Lists

List winterFruits = new ArrayList<>(); winterFruits.add("Clementine"); winterFruits.add("Plums"); winterFruits.add("Dates"); winterFruits.add("Grapefruit"); winterFruits.add("Kiwi"); 
List summerFruits = new ArrayList<>(); summerFruits.add("Mango"); summerFruits.add("Plums"); summerFruits.add("Watermelon"); summerFruits.add("Papaya"); summerFruits.add("Grapefruit"); 

2. Duplicate

2.1 contains() method

contains(Object o) method is present in Java.util.List package.

This method returns true if the passed object is present in the list and otherwise it returns false. This method checks for the occurrence. If any passed value or object appears more then once then it will check for the first appearance. It won’t check for all occurrences.

By using this method we can find both duplicate and unique elements from two lists.

List duplicateList = new ArrayList<>(); for (String fruitName : winterFruits) < if (summerFruits.contains(fruitName)) < duplicateList.add(fruitName); >> 
duplicateList: [Plums, Grapefruit]

2.2 retainAll method

retainAll(Collection c): This method takes another list as argument. We call passed list as specified list. retainAll method keeps the values which are present in the specified and remaining values will be deleted from the current list.

winterFruits.retainAll(summerFruits);

Once retainAll method is invoked than it will check what values of summerFruits are present in winterFruits list then Keep these values untouched and removes non-equal values from winterFruits list.

winterFruits: [Plums, Grapefruit]

3. Unique

3.1 Set

Set interface does not allow duplicate values adding to it. So First we add summerFruits to winterFruits then now winterFruits is having all the values of winterFruits and summerFruits.

winterFruits.addAll(summerFruits);

Next, convert winterFruits to set.

Set uniqueValues = new HashSet<>(winterFruits); 
uniqueValues [Clementine, Plums, Dates, Grapefruit, Kiwi, Mango, Watermelon, Papaya]

3.2 removeAll

removeAll(Collection c): Removes from this list all of its values that are present in the specified collection.

In simple workds, Taking out duplicate values out from two lists and adding these two list into one list(winterFruits). Finally adding back the duplicate elements back to winterFruits list.

List copyOfWinterFruits = new ArrayList<>(winterFruits); copyOfWinterFruits.retainAll(summerFruits); winterFruits.removeAll(copyOfWinterFruits); summerFruits.removeAll(copyOfWinterFruits); winterFruits.addAll(summerFruits); winterFruits.addAll(copyOfWinterFruits); 
Unique List [Clementine, Dates, Kiwi, Mango, Watermelon, Papaya, Plums, Grapefruit]

4. Custom Objects

What happens if Student or CheckOut objects are present in the list then how to find out the duplicates based on combination of id and name of student or on any condition.

In these type of sceraios, We must do the following.

A. Override equals() method in Student class if using contains() method or List methods.
B. Override both equals and hashcode methods in Student class in case of HashSet or HashMap.

5. Conclusion

In this article, We’ve seen how to find the duplicates values and unique values from two lists different ways.

Full programs are available on GitHub.

Labels:

SHARE:

Twitter Facebook Google Pinterest

About Us

Java 8 Tutorial

  • Java 8 New Features
  • Java 8 Examples Programs Before and After Lambda
  • Java 8 Lambda Expressions (Complete Guide)
  • Java 8 Lambda Expressions Rules and Examples
  • Java 8 Accessing Variables from Lambda Expressions
  • Java 8 Method References
  • Java 8 Functional Interfaces
  • Java 8 — Base64
  • Java 8 Default and Static Methods In Interfaces
  • Java 8 Optional
  • Java 8 New Date Time API
  • Java 8 — Nashorn JavaScript

Java Threads Tutorial

Kotlin Conversions

Kotlin Programs

Java Conversions

  • Java 8 List To Map
  • Java 8 String To Date
  • Java 8 Array To List
  • Java 8 List To Array
  • Java 8 Any Primitive To String
  • Java 8 Iterable To Stream
  • Java 8 Stream To IntStream
  • String To Lowercase
  • InputStream To File
  • Primitive Array To List
  • Int To String Conversion
  • String To ArrayList

Java String API

  • charAt()
  • chars() — Java 9
  • codePointAt()
  • codePointCount()
  • codePoints() — Java 9
  • compareTo()
  • compareToIgnoreCase
  • concat()
  • contains()
  • contentEquals()
  • copyValueOf()
  • describeConstable() — Java 12
  • endsWith()
  • equals()
  • equalsIgnoreCase()
  • format()
  • getBytes()
  • getChars()
  • hashcode()
  • indent() — Java 12
  • indexOf()
  • intern()
  • isBlank() — java 11
  • isEmpty()
  • join()
  • lastIndexOf()
  • length()
  • lines()
  • matches()
  • offsetByCodePoints()
  • regionMatches()
  • repeat()
  • replaceFirst()
  • replace()
  • replaceAll()
  • resolveConstantDesc()
  • split()
  • strip(), stripLeading(), stripTrailing()
  • substring()
  • toCharArray()
  • toLowerCase()
  • transform() — Java 12
  • valueOf()

Spring Boot

$show=Java%20Programs

$show=Kotlin

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,

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

Источник

Оцените статью