Open In App

Program to convert set of String to set of Integer in Java

Improve
Improve
Like Article
Like
Save
Share
Report

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]


Last Updated : 11 Dec, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads