Skip to content
Related Articles

Related Articles

Improve Article
Program to convert set of String to set of Integer in Java
  • Last Updated : 11 Dec, 2018

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 to Set.

Algorithm:

  1. Get the set of String.
  2. Convert Set of String to Stream of String. This is done using Set.stream().
  3. Convert Stream of String to Stream of Integer. This is done using Stream.map() and passing Integer.parseInt() method as lambda expression.
  4. Collect Stream of Integer into Set of Integer. This is done using Collectors.toSet().
  5. 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]

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :