Maksim Maksim - 4 months ago 26
Java Question

Convert Iterator to ArrayList

Given

Iterator<Element>
, how can we convert that iterator to
ArrayList<Element>
(or
List<Element>
) in the best and fastest way possible, so that we can use
ArrayList
's operations on it such as
get(index)
,
add(element)
, etc.

Answer

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);       
Comments