迭代器和列表器之间的区别?

2022-08-31 07:48:28
Iterator ite = Set.iterator();
Iterator ite = List.iterator();

ListIterator listite = List.listIterator();

我们可以用它来遍历 a 或 a 或 .但是只能用来遍历一个,它不能遍历一个。为什么?IteratorSetListMapListIteratorListSet

我知道主要的区别在于,使用迭代器,我们只能朝一个方向行进,但使用迭代器,我们可以双向行进。还有其他区别吗?以及任何优势 ?ListIteratorListIteratorIterator


答案 1

这些差异列在 ListIterator 的 Javadoc 中

您可以

  • 向后迭代
  • 随时获取迭代器。
  • 随时添加新值。
  • 在该位置设置一个新值。

答案 2

有两个区别:

  1. 我们可以使用迭代器遍历 Set 和 List,还可以遍历对象的 Map 类型。虽然 ListIterator 可用于遍历列表类型的对象,但不能用于 Set 类型的对象。

    也就是说,我们可以通过使用 Set 和 List 来获取迭代器对象,请参阅此处:

    通过使用迭代器,我们可以仅向前方向从集合对象中检索元素。

    迭代器中的方法:

    1. hasNext()
    2. next()
    3. remove()
    Iterator iterator = Set.iterator();
    Iterator iterator = List.iterator();
  2. 但是我们只从 List 接口获取 ListIterator 对象,请参阅此处:

    其中,作为ListIterator,您可以在任一方向(向前和向后)遍历。因此,除了迭代器之外,它还有两个类似和不同的方法。此外,我们可以获取下一个或上一个元素的索引(分别使用 和 )hasPrevious()previous()nextIndex()previousIndex()

    ListIterator 中的方法:

    1. hasNext()
    2. 下一步()
    3. 上一页()
    4. hasPrevious()
    5. 删除()
    6. 下一页索引()
    7. 上一页索引()
    ListIterator listiterator = List.listIterator();

    也就是说,我们无法从 Set 接口获取 ListIterator 对象。

参考 : - 迭代器和列表迭代器有什么区别?