1. Overview
In this article, We'll learn how to convert between List and Set objects. First, start with the basic java API methods, JDK 8 and above.
Finally, we'll learn how to convert List to Set and Set to List using Guava and apache commons API's.
In the previous article, we have discussed the conversion between List and Map objects.
2. Java - Convert List to Set
Converting List to Set can be done in many ways. let us start with the simple plain java and then next other ways.
All 6 ways are shown in the below single example.
A) Using Set.addAll() method
B) Using HashSet constructor
C) Java 8 Stream api
D) Java 10 api - Set.copyof()
E) Guava api
F) Apache commons
Example 1
package com.javaprogramto.convert.listset; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import com.google.common.collect.Sets; public class ConvertListToSetExamples { public static void main(String[] args) { // List creation List<String> vowels = Arrays.asList("A", "E", "I", "O", "U"); System.out.println("Original list values - " + vowels); // Way - 1 Using Set.addAll() Set<String> set1 = new HashSet<>(); set1.addAll(vowels); System.out.println("set1 using set.addAll - " + set1); // Way - 2 Using Set constructor Set<String> set2 = new HashSet<>(vowels); System.out.println("set2 using set constructor - " + set2); // Way - 3 Using Java 8 stream api Set<String> set3 = vowels.stream().collect(Collectors.toCollection(HashSet::new)); System.out.println("set3 using java 8 api - " + set3); // Way - 4 Using Java 10 api Set<String> set4 = Set.copyOf(vowels); System.out.println("set4 using java 10 api - " + set4); // Way - 5 Using guava api Set<String> set5 = Sets.newHashSet(vowels); System.out.println("set5 using guava api - " + set5); // Way - 6 Using apache commons api Set<String> set6 = new HashSet<>(); CollectionUtils.addAll(set6, vowels); System.out.println("set5 using apache commons api - " + set6); } }
Output
Original list values - [A, E, I, O, U] set1 using set.addAll - [A, E, U, I, O] set2 using set constructor - [A, E, U, I, O] set3 using java 8 api - [A, E, U, I, O] set4 using java 10 api - [A, U, E, O, I] set5 using guava api - [A, E, U, I, O] set5 using apache commons api - [A, E, U, I, O]
We could see the same values for all set instances generated by various ways.
3. Java - Convert Set to List
Next, we will see the different examples to convert a set of integers to a list of integers in 6 ways.
The below examples have used the following methods
A) Using List.addAll() method
B) Using ArrayList constructor
C) Java 8 Stream api
D) Java 10 api - List.copyof()
E) Guava api
F) Apache commons
Example 2
package com.javaprogramto.convert.listset; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import com.google.common.collect.Lists; import com.google.common.collect.Sets; public class ConvertSetToListExamples { public static void main(String[] args) { // Set creation Set<Integer> numbers = new HashSet<>(); numbers.add(10); numbers.add(20); numbers.add(30); numbers.add(40); numbers.add(50); System.out.println("Original set values - " + numbers); // Way - 1 Using List.addAll() List<Integer> list1 = new ArrayList<>(); list1.addAll(numbers); System.out.println("list1 using list.addAll - " + list1); // Way - 2 Using List constructor List<Integer> list2 = new ArrayList<>(numbers); System.out.println("list2 using set constructor - " + list2); // Way - 3 Using Java 8 stream api List<Integer> list3 = numbers.stream().collect(Collectors.toList()); System.out.println("list3 using java 8 api - " + list3); // Way - 4 Using Java 10 api List<Integer> list4 = List.copyOf(numbers); System.out.println("list4 using java 10 api - " + list4); // Way - 5 Using guava api List<Integer> list5 = Lists.newArrayList(numbers); System.out.println("list5 using guava api - " + list5); // Way - 6 Using apache commons api List<Integer> list6 = new ArrayList<>(); CollectionUtils.addAll(list6, numbers); System.out.println("list6 using apache commons api - " + list6); } }
Output
Original set values - [50, 20, 40, 10, 30] list1 using list.addAll - [50, 20, 40, 10, 30] list2 using set constructor - [50, 20, 40, 10, 30] list3 using java 8 api - [50, 20, 40, 10, 30] list4 using java 10 api - [50, 20, 40, 10, 30] list5 using guava api - [50, 20, 40, 10, 30] list6 using apache commons api - [50, 20, 40, 10, 30]
4. Conclusion
In this article, we've seen how conversion can be done between List and Set objects in java.
Examples are simplified to show in the single program for better comparing each methodology.
HashSet Examples
No comments:
Post a Comment
Please do not add any spam links in the comments section.