ListIterator与Iterator的区别
ListIterator与Iterator不同,不仅可向后迭代,还可向前迭代
ListIterator相比Iterator增加了如下3个方法:
- void add():在指定位置插入一个元素
- boolean hasPrevious():返回该迭代器关联的集合是否存在上一个元素
- Object previous():返回该迭代器的上一个元素
ListIterator的应用
public class TestListIterator {
// 迭代器ListIterator实现逆向遍历
@Test
public void testArrayList3() {
LinkedList list = new LinkedList();
list.add(123);
list.add(456);
list.add("AA");
list.add("BB");
list.add("CC");
System.out.println(list);
System.out.println(list.getFirst());
System.out.println(list.getLast());
list.removeLast();
System.out.println(list.getLast());
System.out.println(list);
System.out.println();
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()) {
listIterator.next();
}
while (listIterator.hasPrevious()) {
System.out.println(listIterator.previous());
}
}
}
运行结果
[123, 456, AA, BB, CC]
123
CC
BB
[123, 456, AA, BB]
BB
AA
456
123
应注意的是:应先通过hasNext正向迭代,再使用hasPrevious反向迭代。