List list=new ArrayList();
for(int i=0;i<10;i++)
{
list.add(new Integer(i));
}                  ListIterator listit=list.listIterator();
while(listit.hasPrevious())
{
System.out.println(listit.previous());
}我是想用ListIterator中的previous()方法,把元素倒着打印出来。可是什么也出不来,代码哪里写错了吗?请各位朋友帮忙看看,谢谢啦!:)

解决方案 »

  1.   

    可能你对Iterator这个接口的运用还不是特别清楚,首先给你一个可以跑的通的程序import java.util.*;public class ListIteratorDemo {

    public static void main(String[] args){
    List list=new ArrayList();
            for(int i=0;i<10;i++)
            {
                list.add(new Integer(i));
            }        ListIterator listit=list.listIterator();
            while(listit.hasNext()){
             System.out.println(listit.next());
            }
            
            while(listit.hasPrevious())
            {
                System.out.println(listit.previous());
            } }}
    解释如下:
    1.之前的程序不能跑,是获得Iterator的时候,默认Iterator指向的是List的第一个元素,所以这个时候Iterator的hasPrevious方法是false,因此你的程序跑不了。要想跑,必须要操作一下,让Iterator指向最后一个元素
    2.Iterator内部是有个类似指针的,每进行一次next()或pervious()操作都会移动这个指针,也就是Iterator本身在操作的时候,内部指针状态在变化。
    3.给你的这个demo首先控制让Iterator内部的指针移动到List最后,然后才能倒序输出,原因在第一条。最后,倒序输出List不一定要用Iterator,也可以用另外的方法的
      

  2.   

    ListIterator listit = list.listIterator(list.size());