今天看了下集合,遇到一个奇怪的问题,请高手指点,用了下迭代器的子类ListIterator,但里面的逆向遍历方法hasPrevious()和previous()有点奇怪,不能一开始就使用这个逆向遍历方法,非得先用正向遍历结束后才能使用逆向遍历,这样逆向遍历的方法才有效,按其原理也就是非得先用正向遍历
使指针指向了最后才能用逆向遍历,那么这样的话就感觉有点问题了,按java设计者的思想应该是可以直接一来就可以采用逆向遍历,这样才能更有实际
意义啊,例子如下:- import java.util.*;
- class test
- {
- public static void main(String[] args)
- {
- ArrayList al=new ArrayList();
- al.add("123");
- al.add("qwqe");
- al.add("abc");
- al.add("1234");
- System.out.println(al);
- ListIterator li=al.listIterator();
- /*
- while(li.hasNext())//正向遍历,
- {
- System.out.println(li.next());
- }
- */
- while(li.hasPrevious())//逆向遍历,非得先用正向遍历,逆向遍历才能打印出来
- {
- System.out.println(li.previous());
- }
- }
- }
复制代码 上面的例子就是非得先用正向遍历,逆向遍历才能答应出来,这就有点奇怪了,请高手指点啊 |