Program to convert set of String to set of Integer in Java
Java Set is a part of java.util package and extends java.util.Collection interface. It does not allow the use of duplicate elements and at max can accommodate only one null element.
A Stream is a sequence of objects that supports various methods which can be pipelined to produce the desired result. Java 8 Stream API can be used to convert Set
Algorithm:
- Get the set of String.
- Convert Set of String to Stream of String. This is done using Set.stream().
- Convert Stream of String to Stream of Integer. This is done using Stream.map() and passing Integer.parseInt() method as lambda expression.
- Collect Stream of Integer into Set of Integer. This is done using Collectors.toSet().
- Return/Print the set of String.
Program 1: Using direct conversion.
// Java Program to convert // Set<String> to Set<Integer> in Java 8 import java.util.*; import java.util.stream.*; class GFG { public static void main(String args[]) { // Create a set of String Set<String> setOfString = new HashSet<>( Arrays.asList( "1" , "2" , "3" , "4" , "5" )); // Print the set of String System.out.println( "Set of String: " + setOfString); // Convert Set of String to set of Integer Set<Integer> setOfInteger = setOfString.stream() .map(s -> Integer.parseInt(s)) .collect(Collectors.toSet()); // Print the set of Integer System.out.println( "Set of Integer: " + setOfInteger); } } |
Output:
Set of String: [1, 2, 3, 4, 5] Set of Integer: [1, 2, 3, 4, 5]
Program 2: Using generic function.
// Java Program to convert // Set<String> to Set<Integer> in Java 8 import java.util.*; import java.util.stream.*; import java.util.function.Function; class GFG { // Generic function to convert Set of // String to Set of Integer public static <T, U> Set<U> convertStringSetToIntSet(Set<T> setOfString, Function<T, U> function) { return setOfString.stream() .map(function) .collect(Collectors.toSet()); } public static void main(String args[]) { // Create a set of String Set<String> setOfString = new HashSet<>( Arrays.asList( "1" , "2" , "3" , "4" , "5" )); // Print the set of String System.out.println( "Set of String: " + setOfString); // Convert Set of String to set of Integer Set<Integer> setOfInteger = convertStringSetToIntSet( setOfString, Integer::parseInt); // Print the set of Integer System.out.println( "Set of Integer: " + setOfInteger); } } |
Output:
Set of String: [1, 2, 3, 4, 5] Set of Integer: [1, 2, 3, 4, 5]
Please Login to comment...