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

The Java.util.List is a child interface of Collection. It is an ordered collection of objects in which duplicate values can be stored. Since List preserves the insertion order, it allows positional access and insertion of elements. List Interface is implemented by ArrayList, LinkedList, Vector and Stack classes.

  1. Using Java 8 Stream API: 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 List to List.

    Algorithm:

    1. Get the list of String.
    2. Convert List of String to Stream of String. This is done using List.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 List of Integer. This is done using Collectors.toList().
    5. Return/Print the list of String.

    Program:

    // Java Program to convert
    // List<String> to List<Integer> in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.*;
      
    class GFG {
      
        // Generic function to convert List of
        // String to List of Integer
        public static <T, U> List<U>
        convertStringListToIntList(List<T> listOfString,
                                   Function<T, U> function)
        {
            return listOfString.stream()
                .map(function)
                .collect(Collectors.toList());
        }
      
        public static void main(String args[])
        {
      
            // Create a list of String
            List<String> listOfString = Arrays.asList("1", "2", "3",
                                                           "4", "5");
      
            // Print the list of String
            System.out.println("List of String: " + listOfString);
      
            // Convert List of String to list of Integer
            List<Integer> listOfInteger = convertStringListToIntList(
                listOfString,
                Integer::parseInt);
      
            // Print the list of Integer
            System.out.println("List of Integer: " + listOfInteger);
        }
    }

    Output:



    List of String: [1, 2, 3, 4, 5]
    List of Integer: [1, 2, 3, 4, 5]
    
  2. Using Guava’s List.transform():

    Algorithm:

    1. Get the list of String.
    2. Convert List of String to List of Integer using Lists.transform(). This is done using passing Integer.parseInt() method as lambda expression for transformation.
    3. Return/Print the list of String.

    Program:

    // Java Program to convert
    // List<String> to List<Integer> in Java 8
      
    import com.google.common.base.Function;
    import com.google.common.collect.Lists;
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert List of
        // String to List of Integer
        public static <T, U> List<U>
        convertStringListToIntList(List<T> listOfString,
                                   Function<T, U> function)
        {
            return Lists.transform(listOfString, function);
        }
      
        public static void main(String args[])
        {
      
            // Create a list of String
            List<String> listOfString = Arrays.asList("1", "2", "3",
                                                          "4", "5");
      
            // Print the list of String
            System.out.println("List of String: " + listOfString);
      
            // Convert List of String to list of Integer
            List<Integer>
                listOfInteger = convertStringListToIntList(listOfString,
                                                     Integer::parseInt);
      
            // Print the list of Integer
            System.out.println("List of Integer: " + listOfInteger);
        }
    }

    Output:

    List of String: [1, 2, 3, 4, 5]
    List of Integer: [1, 2, 3, 4, 5]
    


  3. My Personal Notes arrow_drop_up

    Technical Content Engineer

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.