广播电台网站建设方案,一个人免费看直播,c++制作网页,做网站的文案ListIterator是一个功能更加强大的迭代器接口, 它继承于Iterator接口,只能用于各种List类型的访问。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator, 还可以调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator。 一、源码解… ListIterator是一个功能更加强大的迭代器接口, 它继承于Iterator接口,只能用于各种List类型的访问。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator, 还可以调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator。 一、源码解析
public interface ListIteratorE extends IteratorE {// Query Operations// 以正向遍历列表时,如果列表迭代器有多个元素,则返回trueboolean hasNext();// 返回列表中的下一个元素E next();// 如果以逆向遍历列表集合,列表迭代器有多个元素,则返回trueboolean hasPrevious();// 返回列表集合中前一个元素E previous();// 返回对next的后续调用所返回的元素的索引int nextIndex();// 返回对previous的后续调用所返回元素的索引int previousIndex();// Modification Operations// 从列表中移除由next或previous返回的最后一个元素void remove();// 用指定元素替换next或者previous返回的最后一个元素void set(E e);//将指定的元素插入列表void add(E e);
}由以上源码内容可以看出可以ListIterator的特点:
(1)双向移动向前/向后遍历.
(2)产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引.
(3)可以使用set()方法替换它访问过的最后一个元素.
(4)可以使用add()方法在next()方法返回的元素之前或previous()方法返回的元素之后插入一个元素.
二、ListIterator与Iterator的区别
一相同点
都是迭代器当需要对集合中元素进行遍历不需要干涉其遍历过程时这两种迭代器都可以使用。
二不同点
使用范围不同Iterator可以应用于所有的集合Set、List和Map和这些集合的子类型。而ListIterator只能用于List及其子类型。ListIterator有add方法可以向List中添加对象而Iterator不能。ListIterator和Iterator都有hasNext()和next()方法可以实现顺序向后遍历但是ListIterator有hasPrevious()和previous()方法可以实现逆向顺序向前遍历。Iterator不可以。ListIterator可以定位当前索引的位置nextIndex()和previousIndex()可以实现。Iterator没有此功能。都可实现删除操作但是ListIterator可以实现对象的修改set()方法可以实现。Iterator仅能遍历不能修改。