How to Maintain Insertion Order While Getting Unique Values from ArrayList in Java? Last Updated : 19 Jan, 2021 Summarize Comments Improve Suggest changes Share Like Article Like Report ArrayList is a part of collection framework and is present in java.util package. It provides us with dynamic arrays in Java. Though, it may be slower than standard arrays but can be helpful in programs where lots of manipulation in the array is needed. This class is found in java.util package. If we want to maintain the insertion order of the elements, we are supposed to use LinkedHashSet. LinkedHashSet maintains the order in which the elements are inserted. Example 1: Java // Java program to Maintain Insertion Order While // Getting Unique Values from ArrayList import java.util.*; class GFG { public static void main(String[] args) { // Creating an arrayList ArrayList<Integer> arrayList = new ArrayList<>(); // adding elements to arrayList arrayList.add(100); arrayList.add(200); arrayList.add(100); arrayList.add(500); arrayList.add(200); arrayList.add(300); arrayList.add(200); arrayList.add(600); // creating an LinkedHashSet and // adding arrayList elements to linkedHashSet LinkedHashSet<Integer> set = new LinkedHashSet<>(arrayList); System.out.println( "Unique values in inserted order"); System.out.println(set); } } OutputUnique values in inserted order [100, 200, 500, 300, 600] Example 2: In this example, instead of using a wrapper class, we will use a user-defined class and will maintain insertion order while getting unique values from ArrayList.Since we are using a user-defined class so we are supposed to override the hashCode method and equals method so that our LinkedHashSet will be able to identify similar elements otherwise our LinkedHashSet will consider every element as a unique element. Java // Java program to Maintain Insertion Order While // Getting Unique Values from ArrayList import java.util.*; class friendsDetail { // class field private String name; private String nickName; // parameterised constructor public friendsDetail(String name, String nickName) { this.name = name; this.nickName = nickName; } // getter for name public String getName() { return name; } // setter for name public void setName(String name) { this.name = name; } // getter for nickname public String getnickName() { return nickName; } // setter for nickname public void setNickName(int id) { this.nickName = nickName; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof friendsDetail)) return false; friendsDetail that = (friendsDetail)o; return Objects.equals(getName(), that.getName()) && Objects.equals(nickName, that.nickName); } @Override public int hashCode() { return Objects.hash(getName(), nickName); } // overriding toString method public String toString() { // return super.toString(); return "(" + this.getName() + ":" + this.getnickName() + ")"; } } class GFG { public static void main(String[] args) { ArrayList<friendsDetail> originalArrayList = new ArrayList<>(); System.out.println("Our ArrayList\n"); originalArrayList.add( new friendsDetail("Raushan", "Chamgader")); originalArrayList.add( new friendsDetail("Yashdeep", "Dopa")); originalArrayList.add( new friendsDetail("Shishya", "Gorilla")); originalArrayList.add( new friendsDetail("Sonika", "Chipkali")); originalArrayList.add( new friendsDetail("Himanshu", "Lalten")); originalArrayList.add( new friendsDetail("Sarthak", "Nagin")); originalArrayList.add( new friendsDetail("Tsering", "Battak")); originalArrayList.add( new friendsDetail("Abhishek", "Liquid")); originalArrayList.add( new friendsDetail("Shishya", "Gorilla")); originalArrayList.add( new friendsDetail("Suraj", "Bhindi")); originalArrayList.add( new friendsDetail("Sonika", "Chipkali")); originalArrayList.add( new friendsDetail("Himanshu", "Lalten")); originalArrayList.add( new friendsDetail("Sarthak", "Nagin")); // Displaying output using enhanced for loop for (friendsDetail friend : originalArrayList) { System.out.println(friend); } LinkedHashSet<friendsDetail> linkedHashSet = new LinkedHashSet<>(originalArrayList); System.out.println( "\nUnique elements in inserted order\n"); // Displaying output using enhanced for loop for (friendsDetail friend : linkedHashSet) { System.out.println(friend); } } } OutputOur ArrayList (Raushan:Chamgader) (Yashdeep:Dopa) (Shishya:Gorilla) (Sonika:Chipkali) (Himanshu:Lalten) (Sarthak:Nagin) (Tsering:Battak) (Abhishek:Liquid) (Shishya:Gorilla) (Suraj:Bhindi) (Sonika:Chipkali) (Himanshu:Lalten) (Sarthak:Nagin) Unique elements in inserted order (Raushan:Chamgader) (Yashdeep:Dopa) (Shishya:Gorilla) (Sonika:Chipkali) (Himanshu:Lalten) (Sarthak:Nagin) (Tsering:Battak) (Abhishek:Liquid) (Suraj:Bhindi) Comment More infoAdvertise with us Next Article Get Unique Values from ArrayList in Java L le0 Follow Improve Article Tags : Java Technical Scripter Java Programs Technical Scripter 2020 Java-Collections Java-ArrayList +2 More Practice Tags : JavaJava-Collections Similar Reads How to Get Unique Values from ArrayList using Java 8? ArrayList in Java do not prevent the list from having duplicate values. But there are ways if you want to get unique values from the ArrayList and each way is explained with an example. Method 1(Using Stream API's distinct() Method): For Java 8, You can use Java 8 Stream API. To get distinct values, 3 min read Get Unique Values from ArrayList in Java Let's see how to get unique values from ArrayList. Convert ArrayList to HashSet to insert duplicate values in ArrayList but on the other hand, HashSet is not allowing to insert any duplicate value. While converting ArrayList to HashSet all the duplicate values are removed and as a result, unique val 2 min read Get Values with Unique Elements from a List in Java In Java, we can write programs to get values with unique elements using loops, conditional statements, and string manipulation. The basic idea is to go through a set of numbers, check each number for repeating digits, eliminate them if any repeated number occurs, and print unique numbers from that l 2 min read How to Get a Value From LinkedHashMap by Index in Java? LinkedHashMap is a predefined class in Java which is similar to HashMap, contain key and its respective value unlike HashMap, In LinkedHashMap insertion order is preserved. The task is to get value from LinkedHashMap by their Index in other words, an order of their insertion. As an advantage of Link 4 min read Java Program to Handle Duplicate Elements in a PriorityQueue While Maintaining Order In Java, elements in a Priority Queue are arranged according to their priority, which is based on a priority heap. When there are duplicate items, the default comparison method is to use a comparator that is given or to compare the elements according to their natural ordering. We can use a custom co 3 min read How to Insert all the Collection Elements to the Specified Position in Java ArrayList? The element can be inserted at the collection elements to the specified position in ArrayList using Collection.addAll() method which is present in java.util.ArrayList class. If any element present at the index then that element and all its right side elements are shifted to the right side. this meth 3 min read Like