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()方法,把元素倒着打印出来。可是什么也出不来,代码哪里写错了吗?请各位朋友帮忙看看,谢谢啦!:)
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,也可以用另外的方法的