Java学习笔记119——List集合特有的迭代器
List集合特有的迭代器
由于继承自Iterator接口,所以内部一定也有hasNext()方法和next()方法
Object previous()返回列表中的上一个元素,并向后移动光标位置。 可以反复调用此方法以向后方遍历列表,或者与调用next()进行混合来回。 (请注意,对next和previous交替调用将next返回相同的元素。)
1、该方法是倒着遍历迭代器
2、该方法的获取元素指针与next()获取元素指针是同一个 boolean hasPrevious()返回true如果遍历反向列表,列表迭代器有多个元素。 (换句话说,如果previous()将返回一个元素而不是抛出异常,则返回true )。
注意: 要想倒着遍历,必须先正着遍历一遍。在开发中很少使用,面试中经常遇到。
public class ListIteratorDemo1 {
public static void main(String[] args) {
//创建集合对象
List list = new ArrayList();
//添加元素
list.add("hello");
list.add("world");
list.add("java");
list.add("hadoop");
ListIterator listIterator = list.listIterator();
// while (listIterator.hasPrevious()) {
// Object previous = listIterator.previous();
// String s = (String) previous;
// System.out.println(s + ",长度为:" + s.length());
// }
//NoSuchElementException
//迭代器一开始的时候指针在第一个位置之前
// Object previous = listIterator.previous();
// String s = (String) previous;
// System.out.println(s + ",长度为:" + s.length());
//先将指针移动到最后一个元素的位置后面
//先正着遍历一遍
System.out.println("正着遍历:");
while (listIterator.hasNext()){
Object next = listIterator.next();
String s = (String) next;
System.out.println(s + ",长度为:" + s.length());
}
System.out.println("************************************");
System.out.println("倒着遍历:");
//然后在倒着遍历
while (listIterator.hasPrevious()){
Object previous = listIterator.previous();
String s = (String) previous;
System.out.println(s + ",长度为:" + s.length());
}
}
}

浙公网安备 33010602011771号