import java.util.Vector;
public class MyStack{
public static void main (String[] args) {
Vector theVector=new Vector();
for(int i=0;i<=9;i++){
Integer newInteger=new Integer(i);
theVector.addElement(newInteger);
}
                System.out.println(theVector);
}
}
这个是正向遍历的,能实现反向的遍历吗?

解决方案 »

  1.   

    你这个只是把所有元素加入Vector吧,没遍历啥啊。可以尝试用Vector.listIterator();得到ListIterator对象;然后调用ListIterator的函数hasPrevious()和previous()。
      

  2.   

    import java.util.*;
    import java.util.Vector;public class MyStack{
    public static void main (String[] args) {
    Vector theVector=new Vector();
    for(int i=0;i<=9;i++){
    Integer newInteger=new Integer(i);
    theVector.addElement(newInteger);
    }
      ListIterator listIt=theVector.listIterator();
    while (listIt.hasPrevious()){
                        System.out.print(listIt.previous());
                    }     
    }
    }
    这样吗?为什么不行啊?????
      

  3.   

    vector就是arraylist的线程安全版本,其实你就可以把arraylist当成数组(他底层就是用数组实现的),所以可以用反向遍历了
      

  4.   

    构造时没指定起始位置:
    ListIterator listIt=theVector.listIterator();
    修改为:
    ListIterator<Integer> listIt = theVector.listIterator(theVector.size());
      

  5.   


    嗯?我本地测试有结果啊:        Vector<Integer> theVector = new Vector();
            for (int i = 0; i <= 9; i++) {
                Integer newInteger = new Integer(i);
                theVector.addElement(newInteger);
            }
            ListIterator<Integer> listIt = theVector.listIterator(theVector.size());
            while (listIt.hasPrevious()) {
                System.out.print(listIt.previous());
            }输出:
    9876543210