浦城 网站 做,滁州网站定制,网络公司网站建设方案,事业单位网站建设的账务处理Iterator 和 ListIterator 都是 Java 集合框架中用于遍历集合元素的接口#xff0c;但它们有一些区别:
使用的范围#xff1a;Iterator可以迭代所有集合,而ListIterator 只能用于List及其子类。
继承关系#xff1a;ListIterator 继承 Iterator#xff0c;并且ListIterat…Iterator 和 ListIterator 都是 Java 集合框架中用于遍历集合元素的接口但它们有一些区别:
使用的范围Iterator可以迭代所有集合,而ListIterator 只能用于List及其子类。
继承关系ListIterator 继承 Iterator并且ListIterator包含的方法更多
遍历的方向Iterator 接口只能向前遍历集合元素而 ListIterator 接口可以双向遍历即向前或向后遍历集合元素。
遍历的能力Iterator 接口只能遍历集合而 ListIterator 接口除了遍历集合元素外还可以修改集合中的元素添加新的元素以及获取当前遍历位置的索引。
遍历的起点Iterator 接口的遍历起点是集合的开头而 ListIterator 接口可以通过 hasPrevious() 和 previous() 方法从集合的末尾开始遍历。
遍历的性能Iterator 接口的遍历性能通常比 ListIterator 接口更好因为 ListIterator 接口需要维护额外的指针和索引信息。
示例如下所示
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;public class Test{public static void main(String[] args) {ArrayListString arrayListnew ArrayList();arrayList.add(张三);arrayList.add(李四);arrayList.add(王五);IteratorString iteratorarrayList.iterator();System.out.println(iterator遍历的结果为:);while(iterator.hasNext()){String elementiterator.next();System.out.print(element );System.out.println();}ListIteratorString listIteratorarrayList.listIterator();System.out.println(listIterator正向遍历的结果为:);while(listIterator.hasNext()){String elementlistIterator.next();if(element.equals(王五)){//在遍历过程中修改集合中的元素listIterator.set(Lisa);}System.out.println(element );}ListIteratorString listIterator2arrayList.listIterator();System.out.println(listIterator修改后正向遍历的结果为:);while(listIterator2.hasNext()){String elementlistIterator2.next();System.out.println(element );}System.out.println(listIterator修改后反向遍历的结果为:);while(listIterator.hasPrevious()){String elementlistIterator.previous();System.out.println(element );}}
}输出如下所示
iterator遍历的结果为:
张三
李四
王五
listIterator正向遍历的结果为:
张三
李四
王五
listIterator修改后正向遍历的结果为:
张三
李四
Lisa
listIterator修改后反向遍历的结果为:
Lisa
李四
张三