java- 将列表迭代器重置为列表的第一个元素

新手上路,请多包涵

我需要知道如何将 LinkedList 迭代器“重置”到它的第一个元素。

例如:

 LinkedList<String> list;
Iterator iter=list.listIterator;
iter.next();
iter.next();

一遍又一遍,在迭代器多次移动后,我需要“重置”迭代器的位置。

我想问一下如何将迭代器“重置”为第一个元素。

我知道我可以通过这种方式获得第一个元素的列表迭代器:

 iter= list.listIterator(1);

这是最好的解决方案吗?或者我错过了 Oracle 文档中的某些内容?

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

阅读 579
2 个回答

最好根本不要使用 LinkedList ,通常它在所有学科中都比较慢,而且不太方便。 (当主要插入/删除到前面时,特别是对于大数组LinkedList更快)

使用 ArrayList ,并迭代

int len = list.size();
for (int i = 0; i < len; i++) {
  Element ele = list.get(i);
}

重置是微不足道的,只需再次循环。

如果你坚持使用迭代器,那么你必须使用一个新的迭代器:

 iter = list.listIterator();

(我一生中只看到过一次 LinkedList 的优势:我可以通过 while 循环遍历并删除第一个元素)

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

您可以再次调用 listIterator 方法来获取指向列表开头的迭代器实例:

 iter = list.listIterator();

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

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