2016-02-08 188 views
0

我的编码存在技术问题。下面我定义向量的向量:将矢量另存为另一个矢量并清除第一个矢量

 Vector<Vector<Integer>> uSupVec = new Vector<Vector<Integer>>(); 
     Vector<Integer> uSup = new Vector<Integer>(); 
     Boolean isRep = false; 
     for (int i = 1; i <numSup ; i++) { 
      uSup.clear(); 
      for (int l = 0; l < i; l++) { 
       if (supName[i] == supName[l]) { 
        isRep = true; 
       }} 
      if (!isRep){uSup.add(i);}  
      for (int j = i+1; j < numSup; j++) { 
       if (supName[i] == supName[j]) { 
         if (!isRep){uSup.add(j);} 
         }} 
      isRep = false; 
      uSupVec.add((Vector) uSup); 
     } 

我的问题是,每当我清了清uSup载体,存储在uSupVec任何载体都将被清除。在每次迭代中,我想定义一些整数的向量,然后将其存储在向量矢量中,并清除我的向量以存储新值,然后再将其存储在我的向量向量中。

回答

1

修改

uSupVec.add((Vector) uSup); 

uSupVec.add(new Vector(uSup)); 
+1

'矢量uSup'是一个向量的引用,所以当你将它添加到一个矢量,要添加的参考,而不是副本的副本的集合。 +1。 –