javassit相比cglib优点_删除元素


Iterator和ListIterator是Java的三个游标中的两个。Iterator和ListIterator都是由Java.Util包中的Collection Framework定义的。ListIterator是Iterator接口的子接口。

Iterator和ListIterator之间的主要区别在于,Iterator只能向前遍历集合中的元素,而ListIterator可以向前以及向后遍历集合中的元素。

让我们来借助下面显示的比较表来讨论Iterator和ListIterator之间更多的区别。

目录

  • 1.比较表
  • 2. 迭代器的定义
  • 3. ListIterator的定义
  • 4. Iterator和ListIterator之间的主要区别
  • 5. 结论


1.比较表

比较依据

Iterator

ListIterator

基本

Iterator只能沿向前方法遍历集合中的元素

ListIterator可以向前也可以向后遍历集合中的元素

添加

Iterator无法将元素添加到集合中

ListIterator可以将元素添加到集合中

修改

Iterator无法修改集合中的元素

ListIterator可以使用set()修改集合中的元素

遍历

Iterator可以遍历Map,List和Set

ListIterator只能遍历List对象

索引

Iterator没有方法来获取集合中元素的索引

使用ListIterator,可以获得集合中元素的索引

2. 迭代器的定义

Iterator是Collection Framework中的接口。它用于遍历集合元素。Iterator允许一个接一个地迭代集合中的每个元素,从集合中获取元素或从集合中删除元素。但是无法使用Iterator修改集合中的任何元素。
Iterator有一个方法iterator(),可将迭代器返回到集合的开头。一旦让迭代器到达集合的开始,然后遍历集合中的元素,就建立一个循环,该循环在每次循环时调用hasNext()hasNext()如果返回true,则表示集合中存在下一个元素;如果返回false,则意味着已经遍历完所有的元素。然后在循环中,可以使用**next()**获得Collection中的每个元素。**next()**方法返回集合的下一个元素。
缺点:

  • 使用Iterator只能沿着向前方向遍历集合。
  • 使用Iterator,无法操作或修改集合中的元素。

3. ListIterator的定义

ListIterator是Collection Framework中的接口,它扩展了Iterator接口。使用ListIterator,可以向前或向后遍历集合中的元素。还可以添加,删除或修改集合中的任何元素。简而言之,可以说它消除了Iterator的缺点。
ListIterator的方法如下:

  • hasNext():如果返回true,则确认集合中还有更多元素。
  • next():返回集合的下一个元素。
  • nextIndex():返回集合中下一个元素的索引。
  • hasPrevious():如果集合中存在相反方向的元素,则返回true。
  • previous():返回集合中的上一个元素。
  • previousIndex():返回集合中上一个元素的索引。
  • remove():从集合中删除元素。
  • set():修改集合中的元素。
  • add():将新元素添加到集合中。

4. Iterator和ListIterator之间的主要区别

  1. Iterator和ListIterator之间的基本区别是,Iterator都是光标,只能向前遍历集合中的元素。ListIterator可以向前和向后遍历集合中的元素。
  2. 使用Iterator,不能将任何元素添加到集合中。但是,通过使用ListIterator,可以将元素添加到集合中。
  3. 使用Iterator不能删除集合中的元素,而使用ListIterator可以从集合中删除元素。
  4. 使用Iterator可以遍历所有集合,例如Map,List,Set。但是,使用ListIterator,只能遍历实现List的对象。
  5. 可以使用Iterator检索元素的的索引。但是由于List是顺序的且基于索引,因此可以使用ListIterator检索元素的索引。

5. 结论

当必须向前和向后双向遍历List对象时,可以使用ListIterator。另外,可以使用Iterator,因为它支持所有类型集合对象。