package com.levelup.java.collections; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Spliterator; import java.util.Spliterators; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import org.apache.commons.collections.IteratorUtils; import org.junit.Test; import com.google.common.collect.Lists; /** * This java example will demonstrate how to convert an Iterator to List. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/convert-iterator-arraylist/'>Convert Iterator to ArrayList</a> */ public class ConvertIteratorToArrayList { static LinkedList<String> collection = new LinkedList<String>(); static { collection.push("One"); collection.push("Two"); collection.push("Three"); collection.push("Four"); } @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); } @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); } @Test public void convert_iterator_to_list_guava() { Iterator<String> iteratorToArray = collection.iterator(); List<String> convertedIterator = Lists.newArrayList(iteratorToArray); assertTrue(convertedIterator.size() == 4); } @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); } }