How to Convert an Array to LinkedHashSet in Java?
An array is a collection of items stored at contiguous memory locations. An array can contain primitives data types as well as objects of a class depending on the definition of the array. Whereas LinkedHashSet contains only unique elements and they are stored in the same order in which they are inserted.
Examples:
Input: arr = {"A", "B", "C", "D", "A"}
Output: LinkedHashSet = {"A", "B", "C", "D"}
LinkedHashSet does not contain repeated elements.
Input: arr = {1, 3, 5, 3, 1}
Output: LinkedHashset = {1, 3, 5}
There are several ways using which we can convert an array to an object of the LinkedHashSet in Java as given below:
1. Using the asList method and LinkedHashSet constructor
- The LinkedHashSet class provides a constructor that accepts a collection object.
- But to use that, we need to convert the array to a List using the asList method of the Arrays class.
Java
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args)
{
String[] names
= { "John" , "Devid" , "Smith" , "Joe" , "Stark" };
Set<String> linkedhasset_name
= new LinkedHashSet<String>(Arrays.asList(names));
System.out.println(
"LinkedHashSet contains element: " + linkedhasset_name);
}
}
|
Output
LinkedHashSet contains element: [John, Devid, Smith, Joe, Stark]
2. Using the asList method and addAll method
- Similar to the previous approach, we will first convert an array to a List
- But this time instead of using the constructor, we will use addAll method to add elements from the array to a linked hash set.
Java
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args) {
String[] names = { "John" , "Devid" , "Smith" , "Joe" , "Stark" };
Set<String> linkhasset_name = new LinkedHashSet<String>();
linkhasset_name.addAll( Arrays.asList(names) );
System.out.println( "LinkedHashSet contains: " + linkhasset_name);
}
}
|
Output
LinkedHashSet contains: [John, Devid, Smith, Joe, Stark]
3. Using Java 8 Stream API:
- Similar to HashSet, you can also use toCollection() method of Collectors class to convert a Stream to LinkedHashSet.
- First, convert array to stream then convert the stream to LinkedHashSet using collection stream which only works in java 8 version.
collect( Collectors.toCollection( LinkedHashSet::new ) );
Java
import java.io.*;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.*;
import java.util.stream.*;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args) {
String[] names = { "John" , "Devid" , "Smith" , "Joe" , "Stark" };
Set<String> linkhasset_name = new LinkedHashSet<String>();
linkhasset_name = Arrays.stream(names).collect( Collectors.toCollection( LinkedHashSet:: new ) );
System.out.println( "LinkedHashSet contains: " + linkhasset_name);
}
}
|
Output
LinkedHashSet contains: [John, Devid, Smith, Joe, Stark]
4. Using a loop or brute force
- We can iterate through all the elements of the array using a for loop and add elements to the LinkedHashSet object one by one as given below.
Java
import java.io.*;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.*;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args) {
String[] names = { "John" , "Devid" , "Smith" , "Joe" , "Stark" };
Set<String> linkhasset_name = new LinkedHashSet<String>();
for (String name : names){
linkhasset_name.add(name);
}
System.out.println( "LinkedHashSet contains: " + linkhasset_name);
}
}
|
Output
LinkedHashSet contains: [John, Devid, Smith, Joe, Stark]
Last Updated :
28 Dec, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...