Convert an Iterator to a List in Java Last Updated : 11 Dec, 2018 Comments Improve Suggest changes Like Article Like Report Given 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 // 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 // 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] Comment More infoAdvertise with us Next Article Convert an Iterator to a List in Java R RishabhPrabhu Follow Improve Article Tags : Java Practice Tags : Java Similar Reads Java List Interface The List Interface in Java extends the Collection Interface and is a part of the java.util package. It is used to store the ordered collections of elements. In a Java List, we can organize and manage the data sequentially. Key Features:Maintained the order of elements in which they are added.Allows 15+ min read AbstractList in Java with Examples The AbstractList class in Java is a part of the Java Collection Framework and implements the Collection interface and the AbstractCollection class. AbstractList class provides a skeletal implementation of the List interface to minimize the effort required to implement this interface backed by a Rand 7 min read ArrayList in Java Java ArrayList is a part of the collections framework and it is a class of java.util package. It provides us with dynamic-sized arrays in Java. The main advantage of ArrayList is that, unlike normal arrays, we don't need to mention the size when creating ArrayList. It automatically adjusts its capac 9 min read LinkedList in Java Linked List is a part of the Collection framework present in java.util package. This class is an implementation of the LinkedList data structure, which is a linear data structure where the elements are not stored in contiguous locations, and every element is a separate object with a data part and an 12 min read Immutable List in Java ImmutableList, as suggested by the name, is a type of List which is immutable. It means that the content of the List are fixed or constant after declaration, that is, they are read-only. If any attempt made to add, delete and update elements in the List, UnsupportedOperationException is thrown. An I 5 min read CopyOnWriteArrayList in Java CopyOnWriteArrayList class is introduced in JDK 1.5, which implements the List interface. It is an enhanced version of ArrayList in which all modifications (add, set, remove, etc) are implemented by making a fresh copy. It is found in java.util.concurrent package. It is a data structure created to b 6 min read Custom ArrayList in Java Before proceeding further let us quickly revise the concept of the arrays and ArrayList quickly. So in java, we have seen arrays are linear data structures providing functionality to add elements in a continuous manner in memory address space whereas ArrayList is a class belonging to the Collection 8 min read Difference Between Synchronized ArrayList and CopyOnWriteArrayList in Java Collection As we know that the ArrayList is not synchronized, if multiple threads try to modify an ArrayList at the same time, then the final outcome will be non-deterministic. Hence synchronizing the ArrayList is a must to achieve thread safety in a multi-threaded environment. In order to make List objects we 6 min read How to remove a SubList from a List in Java Given a list in Java, the task is to remove all the elements in the sublist whose index is between fromIndex, inclusive, and toIndex, exclusive. The range of the index is defined by the user. Example: Input list = [1, 2, 3, 4, 5, 6, 7, 8], fromIndex = 2, endIndex = 4 Output [1, 2, 5, 6, 7, 8] Input 2 min read Randomly Select Items from a List in Java In this article, we will explore how to efficiently select an element from a list in Java. The basic approach involves generating a random index between 0 and the size of the list, and then using that index to retrieve the item. Different Ways to Select Items from a ListBelow are the different appro 3 min read Like