Convert an Iterator to a List in JavaReadDiscussCoursesPracticeImprove Article ImproveSave Article SaveLike Article LikeGiven an Iterator, the task is to convert it into List in Java.Examples: Input: Iterator = {1, 2, 3, 4, 5} Output: {1, 2, 3, 4, 5} Input: Iterator = {'G', 'e', 'e', 'k', 's'} Output: {'G', 'e', 'e', 'k', 's'} Below are the various ways to do so:Naive Approach:Get the Iterator.Create an empty list.Add each element of the iterator to the list using forEachRemaining() method.Return the list.Below is the implementation of the above approach:// Java program to get a List// from a given Iterator import java.util.*; class GFG { // Function to get the List public static <T> List<T> getListFromIterator(Iterator<T> iterator) { // Create an empty list List<T> list = new ArrayList<>(); // Add each element of iterator to the List iterator.forEachRemaining(list::add); // Return the List return list; } // Driver code public static void main(String[] args) { // Get the Iterator Iterator<Integer> iterator = Arrays.asList(1, 2, 3, 4, 5) .iterator(); // Get the List from the Iterator List<Integer> list = getListFromIterator(iterator); // Print the list System.out.println(list); }}Output: [1, 2, 3, 4, 5] Using Iterable as intermediate:Get the Iterator.Convert the iterator to iterable using lambda expression.Convert the iterable to list using Stream.Return the list.Below is the implementation of the above approach:// Java program to get a List// from a given Iterator import java.util.*;import java.util.stream.Collectors;import java.util.stream.StreamSupport; class GFG { // Function to get the List public static <T> List<T> getListFromIterator(Iterator<T> iterator) { // Convert iterator to iterable Iterable<T> iterable = () -> iterator; // Create a List from the Iterable List<T> list = StreamSupport .stream(iterable.spliterator(), false) .collect(Collectors.toList()); // Return the List return list; } // Driver code public static void main(String[] args) { // Get the Iterator Iterator<Integer> iterator = Arrays.asList(1, 2, 3, 4, 5) .iterator(); // Get the List from the Iterator List<Integer> list = getListFromIterator(iterator); // Print the list System.out.println(list); }}Output: [1, 2, 3, 4, 5] Last Updated : 11 Dec, 2018Like Article Save Article Please Login to comment...