[java] Iterator和Listiterator之间的区别?



Answers

有两个区别:

  1. 我们可以使用Iterator来遍历Set和List以及Map类型的Objects。 虽然可以使用ListIterator来遍历List类型的对象,但不能用于Set-type的对象。

    也就是说,我们可以使用Set和List来获得一个Iterator对象,请看这里:

    通过使用迭代器,我们只能从正面方向从集合对象中检索元素。

    迭代器中的方法:

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

    作为一个ListIterator允许你在任何方向(向前和向后)遍历。 所以它有两个方法,像hasPrevious()previous()而不是Iterator的方法。 此外,我们可以获得下一个或上一个元素的索引(分别使用nextIndex()previousIndex()

    ListIterator中的方法:

    1. hasNext()
    2. 下一个()
    3. 以前()
    4. hasPrevious()
    5. 去掉()
    6. nextIndex()
    7. previousIndex()
    ListIterator listiterator = List.listIterator();

    即,我们无法从Set接口获取ListIterator对象。

参考: - Iterator和ListIterator有什么区别?

Question
Iterator ite = Set.iterator();
Iterator ite = List.iterator();

ListIterator listite = List.listIterator();

我们可以使用Iterator遍历SetListMap 。 但ListIterator只能用于遍历List ,它不能遍历Set 。 为什么?

我知道主要区别在于,使用迭代器我们只能在一个方向上移动,但使用ListIterator我们可以沿两个方向移动。 还有其他的区别吗? ListIteratorIterator优点是什么?




ListIterator优于Iterator优点是我们可以在任何时间点添加元素,同时使用ListIterator 遍历列表。




Related