Convert Iterator to List

iterator, java, list

Solution

Better use a library like Guava:

import com.google.common.collect.Lists;

Iterator<Element> myIterator = ... //some iterator
List<Element> myList = Lists.newArrayList(myIterator);

Another Guava example:

ImmutableList.copyOf(myIterator);

or Apache Commons Collections:

import org.apache.commons.collections.IteratorUtils;

Iterator<Element> myIterator = ...//some iterator

List<Element> myList = IteratorUtils.toList(myIterator);       

Problem

Given `Iterator<Element>`, how can we conveniently convert that `Iterator` to a `List<Element>`, so that we can use `List`'s operations on it such as `get(index)`, `add(element)`, etc.

Original source