将迭代器转换为列表

新手上路,请多包涵

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作为 get(index)add(element) 等。

原文由 Maksim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 523
2 个回答

最好使用像 Guava 这样的库:

 import com.google.common.collect.Lists;

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

另一个番石榴示例:

 ImmutableList.copyOf(myIterator);

Apache Commons 集合

 import org.apache.commons.collections.IteratorUtils;

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

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

原文由 Renaud 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

原文由 Stuart Marks 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题