概述:
ListItrrator:列表迭代器
- 通过lIst集合的listIterator()方法得到,所以说它是List集合特有的迭代器
- 用于允许程序员
沿任一方向遍历列表
的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
ListIterator中的常用方法:
E next()
:返回列表中的下一个元素,并且前进光标位置boolean hasNext()
:如果此列表迭代器在向前方向遍历列表时具有更多元素,则返回 trueE previous()
:返回列表中的上一个元素,并向后移动光标位置boolean hasPrevious
:如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回 truevoid add(E e)
:将指定的元素插入列表
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("java");
ListIterator<String> li = list.listIterator();
while (li.hasNext()){
String s = li.next();
System.out.println(s);
}
System.out.println("--------------------");
while (li.hasPrevious()){
String s1 =li.previous();
System.out.println(s1);
}
}
}
hello
world
java
--------------------
java
world
hello
add()方法:
这里的列表迭代器
(ListIterator)和前面介绍过的迭代器
(Iterator)不同的是每进行一次都会把实际修改值modCount
重新赋值给预期修改值expectedModCount
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("java");
//获取列表迭代器
//这里的列表迭代器(ListIterator)add方法和前面介绍过的迭代器add方法不同的是每进行一次都会把实际修改值modCount重新赋值给预期修改值expectedModCount
ListIterator<String> li = list.listIterator();
while (li.hasNext()){
String s = li.next();
if (s.equals("world")){
li.add("javaee");
}
}
System.out.println(list);
}
}
[hello, world, javaee, java]