An Iterator
is a computer programming concept that implies the behavior of being able to traverse a container, particularly ArrayList . Depending on your situation you may want to convert the Iterator
back to a List
. This example will show how to convert from an Iterator
to an Arraylist
using java, java 8, guava and apache commons.
Setup static LinkedList < String > collection = new LinkedList < String >();
static {
collection . push ( "One" );
collection . push ( "Two" );
collection . push ( "Three" );
collection . push ( "Four" );
}
Straight up Java @Test
public void convert_iterator_to_list_java () {
Iterator < String > iteratorToList = collection . iterator ();
List < String > listOfStrings = new ArrayList < String >( 4 );
while ( iteratorToList . hasNext ()) {
listOfStrings . add ( iteratorToList . next ());
}
assertTrue ( listOfStrings . size () == 4 );
}
Java 8 @Test
public void convert_iterator_to_list_java8 () {
Iterator < String > iteratorToCollection = collection . iterator ();
List < String > convertedIterator = StreamSupport . stream (
Spliterators . spliteratorUnknownSize ( iteratorToCollection ,
Spliterator . ORDERED ), false ). collect (
Collectors .< String > toList ());
assertTrue ( convertedIterator . size () == 4 );
}
Google Guava @Test
public void convert_iterator_to_list_guava () {
Iterator < String > iteratorToArray = collection . iterator ();
List < String > convertedIterator = Lists . newArrayList ( iteratorToArray );
assertTrue ( convertedIterator . size () == 4 );
}
Apache Commons @Test
public void convert_iterator_to_list_apache () {
Iterator < String > iteratorToArrayList = collection . iterator ();
@SuppressWarnings ( "unchecked" )
List < String > convertedIteratorToList = IteratorUtils
. toList ( iteratorToArrayList );
assertTrue ( convertedIteratorToList . size () == 4 );
}
Convert Iterator to ArrayList posted by Justin Musgrove on 23 February 2015
Tagged: java and java-collections
Share on: Facebook Google+
All the code on this page is available on github:
ConvertIteratorToArrayList.java