应该存储上的问题吧,如果你只是申请一个row Vector的话,那么它就是一个对象
你的whole每次加入内存地质都是指向相同地质的,所以内容自然相同,重新申请
后重新分配了地址,所以结果就正确了

解决方案 »

  1.   

    也就是说whole里只是保存了row的内存地址,并不开辟新的存储空间,帮助里也没提到呀
    是不是这些add方法都只是加入了对象的内存地址呢
      

  2.   

    object 很像 pointer, 如果在某一个自己想不到的地方动了它, 那就很麻烦!
    尤其,开始时你一直在操作一个object,那不管它在那里,都会被你那句话改掉!
      

  3.   

    都说Java没有指针,实际上除了主类型数据外,各种类对象的句柄可以看做指针(比C++的指针安全)
       "whole.addElement(row);"在循环中只是把Vector row的句柄在Vector whole中复制了num个而已
      package Test01;
    import java.util.Vector;
    /**
     *
     * @author  Rzg1979o
     */
    public class Vectortest {
        
        /** Creates a new instance of Vectortest */
        public Vectortest() {
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            Vector t1=new Vector();
            Vector t2=new Vector();
            
            t2.addElement(t1);
            t2.addElement(t1);
            
            System.out.println("VectorSize:"+t2.size());        if(t2.elementAt(0).equals(t2.elementAt(1))) 
                 System.out.print("The fistElement equals second");
            
        }
        
    }
       从上面可以看出调用t2.addElement(t1)两次t2.size()相应的等于2,但是两次加入的句柄都是指向同一个对象,很多小问题可以自己写一些程序自己来解决.