Convert list to Set Java 8 stream

This Tutorial Explains how to Convert Java List to Array and Other Collections. It Includes Examples to Convert List to Array, String, Set, and vice-versa:

In our earlier tutorials, we discussed the details of the list collection. We have seen the various operations on the list, iterators, etc. Given a list, we can convert this list into any other collections or data structures like strings, arrays, ArrayList, set, etc.

=> Visit Here For The Exclusive Java Training Tutorial Series.

What You Will Learn:

  • List Conversions
    • Convert List To String
    • Converting List To An Array
    • Convert Array To List
    • Convert List To Set
    • Convert Set To List
    • Array Vs List
    • Frequently Asked Questions
  • Conclusion
    • Recommended Reading

List Conversions

Here, what we actually do is we transfer the elements from one collection/structure to another and in doing so, we are actually changing the layout of the elements as each collection or data structure has its own layout.

In this tutorial, we will discuss a few conversions from the list to other data structures and vice-versa.

Convert List To String

You can easily convert the list of elements into its string representation. Mostly you will want to convert a list of strings or characters to a string representation.

There are various methods of converting the list to a string. The most popular ones are discussed below.

#1] Using The toString Method

This is the simplest method to convert list to string. In this method, you simply use the toString method on a list that converts the list into a string representation.

The program below shows the implementation of the toString method.

import java.util.Arrays; import java.util.List; // Convert List of Characters to String in Java class Main { public static void main[String[] args] { // create and initialize a character list List strList = Arrays.asList['H', 'e', 'l', 'l', 'o']; //convert list to string using toString method System.out.println["List converted to string representation:\n" + strList.toString[]]; //replace comma between characters with blanks String string = strList.toString[] .substring[1, 3 * strList.size[] - 1] .replaceAll[", ", ""]; // print string System.out.println["String representation by removing delimiters:\n" + string]; } }

Output:

In this program, you can see that after converting the character list into a string representation, the string is refined further by removing the delimiting characters from it and representing it as a single word.

#2] Using Collectors Class

From Java 8 onwards, you can make use of stream APIs with the Collectors class to convert the list into a string.

Example:

import java.util.stream.Collectors; import java.util.Arrays; import java.util.List; class Main { public static void main[String[] args] { // create and initialize list List strList = Arrays.asList['W', 'o', 'r', 'l','d']; // convert list to string using collect and joining[] method String string= strList.stream[].map[String::valueOf].collect[Collectors.joining[]]; // print string System.out.println["List converted to string:" + string]; } }

Output:

In the above program, we make use of stream APIs, map the values and then using joining[] method of Collectors class, and convert the list to string.

#3] Using StringBuilder Class

The third method of converting the list to string is by using a StringBuilder object. Here, each element in the list is appended to the StringBuilder object using a loop. Then the StringBuilder object is converted to its string representation using the toString method.

Check the following program for the demonstration.

import java.util.Arrays; import java.util.List; class Main { public static void main[String[] args] { // create and initialize the list List strList = Arrays.asList['I', 'n', 'd', 'i', 'a']; // object of stringBuilder StringBuilder sb = new StringBuilder[]; // use append method to append list element to StringBuilder object for [Character ch : strList] { sb.append[ch]; } // convert StringBuilder object to string using toString[] String string = sb.toString[]; // print string System.out.println["List converted to string: " + string]; } }

Output:

The above program shows the usage of the StringBuilder object to which the elements in the list are appended. Then the object is converted to a string.

Converting List To An Array

Given a list of elements, you need to convert this list into an array. To do this, you can use any of the methods described below.

#1] Using toArray

The simplest way to convert a list to an array is to use the toArray method of the list.

The following program shows this implementation of the toArray method.

import java.util.*; public class Main { public static void main[String[] args] { //create and initialize list List strList = new LinkedList[]; strList.add["This"]; strList.add["is"]; strList.add["Java"]; strList.add["Tutorial"]; System.out.println["The given list:" + strList]; //use toArray method to convert list to array String[] strArray = strList.toArray[new String[0]]; //print the array System.out.println["The Array from List: "]; for [String val : strArray] System.out.print[val + " "]; } }

Output:

In the above program, we have converted a list of strings into a string array using the toArray method.

#2] Using Java 8 Stream

The next method to convert a list to an array is by using the stream APIs of Java 8. In this, the list is first converted to stream and then using stream[].toArray, it is converted to an array.

The following Java program shows this conversion.

import java.util.*; class Main { public static void main [String[]args] { //create and initialize the list List < String > l_list = new LinkedList< String > []; l_list.add ["Software"]; l_list.add ["Testing"]; l_list.add ["Help"]; l_list.add ["Tutorial"]; System.out.println["The given list:" + l_list]; //Convert list to array using stream and toArray methods String[] str_array = l_list.stream [].toArray [String[]::new]; //print the array System.out.println["The Array converted from list : "]; for [String val:str_array] System.out.print [val + " "]; } }

Output:

The above program uses stream APIs of Java 8 and converts the list to an array. The array is then printed using for each loop.

#3] Using get Method

This is another method of converting the list to an array. In this, we use the get [] of the list that can be used to retrieve individual elements of the list.

The program to convert the list to an array using get [] method is shown below.

import java.io.*; import java.util.List; import java.util.LinkedList; class Main { public static void main [String[] args] { List colors_list = new LinkedList[]; colors_list.add["Red"]; colors_list.add["Green"]; colors_list.add["Blue"]; colors_list.add["Yellow"]; System.out.println["Given list: " + colors_list]; //define the array String[] colors_array = new String[colors_list.size[]]; // get list elements into the array for [int i =0; i > HashSet in Java

#2] Using HashSet or treeset Constructor

The next method is using a set constructor. Here we create a set constructor [treeSet or HashSet]. A list is passed to this constructor as an argument. Using this list, the set is constructed.

Check the program below for this implementation.

import java.util.*; class Main { public static void main[String[] args] { // Create a list of strings List strList = Arrays.asList["Red", "Green", "Blue", "Yellow", "Cyan", "Magenta"]; System.out.println["Original List:" + strList]; // Creating a hash set using constructor and pass list to the constructor Set hashSet = new HashSet[strList]; System.out.println["\nHashSet created from list:"]; //print the hashSet for [String val : hashSet] System.out.print[val + " "]; //Create a treeset using constructor and pass list to the constructor Set treeSet = new TreeSet[strList]; System.out.println["\n\nTreeSet from list: "]; //print the treeset for [String x : treeSet] System.out.print[x + " "]; } }

Output:

In the above program, we create both HashSet and treeSet by passing the list as the argument. Finally, the contents of both HashSet and treeset are displayed.

#3] Using The addAll Method

This is the same as the addAll method of Collections we saw before. Here the addAll method is used to copy the list contents to the set.

The following program shows the usage of the addAll method.

import java.util.*; class Main { public static void main[String[] args] { // Creating a list of strings List intList = Arrays.asList[1,3,5,7,9,11,13]; System.out.println["Original List: " + intList]; //create a hashset Set hashSet = new HashSet[]; //add elements of list to hashSet using addAll method hashSet.addAll[intList]; System.out.println["HashSet created from list: "]; //print the hashSet for [Integer val : hashSet] System.out.print[val + " "]; } }

Output:

This program creates a HashSet object. Then the addAll method is invoked on the HashSet object with the list as a parameter. This method copies the list contents to the set.

#4] Using Java 8 Streams

As already seen, you can also use Java 8 streams to convert the list to any other collection including set. You have to use the stream[].collect method to do this.

The following program shows this implementation.

import java.util.*; import java.util.stream.*; class Main { public static void main[String[] args] { // Create a list of strings List colorsList = Arrays.asList["Red", "Green", "Blue", "Cyan", "Magenta", "Yellow"]; System.out.println["Original List:" + colorsList]; // Convert to set using stream and Collectors class toSet[] method Set colorsSet = colorsList.stream[].collect[Collectors.toSet[]]; System.out.println["The set from list:"]; //print the set for [String x : colorsSet] System.out.print[x + " "]; }

Output:

The above program is similar to that shown in the case of conversion from the list to an array. First, the list is converted to stream and then the collect method collects the stream elements and converts to set.

Now that we have seen various methods that perform the conversion from the list to set, let us see the methods that are used to convert set to the list.

Convert Set To List

Similar to the way in which, you convert list to set, you can also convert set to a list. You can use the same methods described above for this conversion. The only difference is that you switch the places of the list and set in the program.

Given below are examples of conversion from set to list for each method.

#1] Using plain Java

importjava.util.*; class Main { public static void main[String[] args] { // Create a set[hashset] and initialize it Set hashSet = new HashSet[]; hashSet.add["Red"]; hashSet.add["Green"]; hashSet.add["Blue"]; hashSet.add["Cyan"]; hashSet.add["Magenta"]; hashSet.add["Yellow"]; //print the set System.out.println["The set elements:"]; for [String x : hashSet] System.out.print[x + " "]; //create a list [ArrayList] List strList = new ArrayList[hashSet.size[]]; //traverse the set and add its elements to the list for [String x : hashSet] strList.add[x]; //print the list System.out.println["\nCreated ArrayList:" + strList]; } }

Output:

The above program declares and initializes a set. Then it creates a list and adds each set element to the list. Finally, it prints the list.

#2] Using Constructors

import java.util.*; class Main { public static void main[String[] args] { // Create a set[hashset] of strings & initialize it Set hashSet = new HashSet[]; hashSet.add["Delhi"]; hashSet.add["Mumbai"]; hashSet.add["Chennai"]; hashSet.add["Kolkata"]; //print the Set System.out.println["The set :"]; for[String str: hashSet] System.out.print[str + " "]; //pass hashset to linkedlist constructor List l_List = new LinkedList[hashSet]; //print the linked list System.out.println ["\n\nLinkedList from set: " + l_List]; } }

Output:

Here, you can use the list constructor with a set object as its argument. This copies all the set elements to the list object.

#3] Using The addAll Method

import java.util.*; class Main { public static void main[String[] args] { // Create a set[hashset] of strings & initialize it Set hashSet = new HashSet[]; hashSet.add["Red"]; hashSet.add["Green"]; hashSet.add["Blue"]; hashSet.add["Cyan"]; hashSet.add["Magenta"]; hashSet.add["Yellow"]; //print the Set System.out.println["The set: "]; for[String x:hashSet] System.out.print[x + " "]; //create a list[ArrayList] List colorList = new ArrayList[]; //use addAll method to add elements from set colorList.addAll[hashSet]; //print the list System.out.println["\n\nThe ArrayList from set: " + colorList]; } }

Output:

In this program, a list object is created. Then using the Collections.addAll[] method, the elements of the set are added to the list.

#4] Using Java 8 Stream

import java.util.*; import java.util.stream.*; class Main { public static void main[String[] args] { // Create a set[hashset] of strings & initialize the set Set hashSet = new HashSet[]; hashSet.add["Yellow"]; hashSet.add["Magenta"]; hashSet.add["Cyan"]; hashSet.add["Red"]; hashSet.add["Green"]; hashSet.add["Blue"]; //print the Set System.out.println["The set:"]; for[String str : hashSet] System.out.print[str + " "]; //create a list and assign it elements of set through stream and Collectors class List strList = hashSet.stream[].collect[Collectors.toList[]]; //print the list System.out.println["\n\nList obtained from set: " + strList]; } }

Output:

You can also use Java 8 streams and the collect method to convert set into the list as shown in the above program.

Array Vs List

Lets discuss some of the differences between an array and a list.

ArrayList
The array is a basic data structure in Java.The list is an interfacethat is part of the collection framework in Java from which many of the classes can be extended like LinkedList, ArrayList etc.
Has fixed sizeList size is dynamic.
Array elements can be accessed using [].List members are accessed using methods.
The array can have primitive types as well as objects as its elements.Lists can contain only objects.
Arrays can use operators with its elements.Lists cannot use operators. Instead,it lists use methods.
Arrays cannot work with generics to ensure type safety.Lists can be generic.

Frequently Asked Questions

Q #1] How do you convert a list to an array in Java?

Answer: The basic method to convert a list to an array in Java is to use the toArray[] method of List interface.

The simple call below converts the list to an array.

Object[] array = list.toArray[];

There are also other methods as discussed above to convert the list to an array.

Q #2] Is an array a list in Java?

Answer: No. An array is a basic structure in Java with a fixed length. It does not extend from the list interface. The structure that extends from the list interface and similar to array is ArrayList.

Q #3] How do you convert an array to a list in Java?

Answer: One of the basic methods to convert an array to a list in Java is to use the asList [] method of the Arrays class.

List aList = Arrays.asList [myarray];

Apart from this, there are more methods that convert an array to a list as discussed earlier in this tutorial.

Q #4] Which is a faster set or list in Java?

Answer: It depends on the data being stored. If the data is unique, then the list is better and faster. If you have a large data set, then go for sets. The set structure usually requires 10 times more memory than lists.

Q #5] What is the difference between an ArrayList and a Set?

Answer: The list is a collection of ordered elements while the set is a collection of unordered elements. The list can have duplicate elements but the set cannot have duplicate elements.

Conclusion

In this tutorial, we have seen various list conversions to the array, set and vice-versa. We have also seen the major differences between an array and a list.

In this next tutorial, we will discuss the list classes like ArrayList, LinkedList, etc. in detail.

=> Check Out The Perfect Java Training Guide Here.

Recommended Reading

  • Java Copy Array: How To Copy / Clone An Array In Java
  • Java Array - How To Print Elements Of An Array In Java?
  • Java List - How To Create, Initialize & Use List In Java
  • Array Data Types - int Array, Double array, Array of Strings Etc.
  • Java Array - Declare, Create & Initialize An Array In Java
  • How To Pass / Return An Array In Java
  • JAVA Tutorial For Beginners: 100+ Hands-on Java Video Tutorials
  • Java Array Length Tutorial With Code Examples

Video liên quan

Chủ Đề