java面试题-Iterator和ListIterator区别

Iterator和ListIterator都是接口,只是ListIterator继承Iterator接口,

对于实现了Collection的类都能使用Iterator,但是只有List接口的下的实现类才能使用ListIterator。


java面试题-Iterator和ListIterator区别_第1张图片

图中,0,1,2,3是迭代器的移动位置,初始的时候位于0,next后返回w元素,迭代器位于1位置

Iterator接口中常用方法有

booleanhasNext();
Enext();
remove();

ListIterator中多了如下方法

boolean hasPrevious();//此方法意思为,迭代器的位置前面是否还有元素
E previous();//和next一样,返回迭代器越过的元素
int nextIndex();//返回迭代器位置的下一个元素下标
int previousIndex();//返回迭代器位置的上一个元素的下标
void set(Ee);//修改next或者previous方法越过的返回元素
void add(Ee);//和Collection.add是添加到列表的尾部,这里的add是添加到迭代器位置,

set()方法例子:

List list =newLinkedList();

list.add("wang");

list.add("jian");

list.add("xin");

ListIterator listit = list.listIterator();

listit.next(); //wang

listit.next();//jian

listit.previous();//jian

listit.previous();//wang

listit.set("1");//修改wang元素

System.out.println(list);

输出:[1, jian, xin]

add()方法例子:

ListIterator listit = list.listIterator();

listit.next();//返回wang

listit.add("1");

System.out.println(list);

输出:[wang, 1, jian, xin]

你可能感兴趣的:(java面试题-Iterator和ListIterator区别)