将迭代器转换为列表

2022-08-31 05:26:23

给定 ,我们如何方便地将其转换为 a ,以便我们可以对它使用 的操作,例如 、 等。Iterator<Element>IteratorList<Element>Listget(index)add(element)


答案 1

最好使用像番石榴这样的库:

import com.google.common.collect.Lists;

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

另一个番石榴的例子:

ImmutableList.copyOf(myIterator);

Apache Commons Collections

import org.apache.commons.collections.IteratorUtils;

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

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

答案 2

在 Java 8 中,您可以使用已添加到接口中的新方法:forEachRemainingIterator

List<Element> list = new ArrayList<>();
iterator.forEachRemaining(list::add);