java.util.ListIterator学习笔记
2016-11-01 11:31
169 查看
概述
继承结构
java.util.Iterator<E> << java.util.ListIterator
基本特性
列表迭代器并不持有当前元素的引用,其持有的游标是位于列表连个元素之间。可以通过调用next()或者
previous()返回列表中的元素。一个拥有
n个元素的列表拥有
n+1个游标位置,示意图如下:
注意:
remove和
set(Object)方法并不是以迭代器的游标为准,而是以最后一次调用迭代器的
next()或者
previous()方法的返回的元素为准。
基础方法
boolean hasNext();
当在迭代器正向遍历仍有可访问的有效元素时,则返回
true,换句话说,如果调用
next()方法可以返回一个有效元素时,则会返回
true,否则返回
false。
E next();
返回迭代器正向访问时的下一个元素,并将迭代器游标进行自增操作。我们可以通过循环调用这个方法达到遍历列表中的目的。同时,我们也可以调用
previous()方法来逆向遍历列表。当我们交替调用
next()与
previous()时,迭代器将返回相同的元素。
boolean hasPrevious();
当迭代器逆向遍历仍有可以访问的有效元素时,则返回
true。也就是说,当调用方法
previous()仍然可以返回一个有效元素时,则返回
true。
E previous();
返回逆向遍历列表的下一个元素,并将迭代器的游标进行自减操作。
int nextIndex();
返回下一次调用
next()时返回的元素的下标。当列表迭代器到达列表末尾时,则会回列表长度。
int previousIndex();
返回下一次掉调用
previous()时返回的元素的下标。当列表迭代器到达列表头部时,则返回-1。
void remove();
删除最后一次调用
next()或者
previous()返回的元素。调用该方法有两个注意点:
每次调用
next()或
previous()后,仅能调用一次本方法;
调用本方法前,不可调用
add(E)方法;
void set(E e);
替换最后一次调用
next()或者
previous()返回的元素。在调用本方法前,不可调用
add(E)和
remove()方法。
void add(E e);
在列表中插入一个新元素。如果
next()可以访问有效元素,则将元素插入到调用
next()方法返回的元素之前。即:如果
previous()可以访问有效元素,则将元素插入到调用
previous()方法返回的元素之后。当列表为空时,则插入的元素为列表中唯一的元素。新元素的插入位置为当前迭代器指定的游标之前,即:插入元素后,调用
next()返回元素不受影响,而调用
previous()函数,则会返回刚刚插入的新元素。调用这个方法后,会使调用
nextIndex()或
previousIndex()的结构都增大1。插入元素前后的示意图如下:
相关文章推荐
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- [JAVA][学习笔记]关于java.util.concurrent中 Future类的一些验证
- java.util.AbstractSequentialList学习笔记
- java.util.Properties类 学习笔记
- java.util.ArrayList学习笔记(一)
- java.util.Map学习笔记
- java.util.Properties类 学习笔记1
- Java学习笔记之Iterator和ListIterator
- java.util.LinkedList学习笔记
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- 黑马程序员:java.util.Properties类 学习笔记
- java.util.Random学习笔记
- java.util.concurrent 学习笔记(2) 线程池基础
- java.util.queue学习笔记
- java.util.Iterator和ListIterator学习