2017-06-13 91 views
0

我得每个矢量的第一元素,并添加到其他载体,并继续直到mainVector结束如何迭代矢量矢量并在下面的场景中获取输出?

mainVector - >[[1,Allen,2000,10],[2,Joe,3000,20],[3,King,4000,40]] [向量(向量)]

输出应该是 - >[[1,2,3],[Allen,Joe,King],[2000,3000,4000],[10,20,40]] [向量(Vectors)]

int i=0; 
Vector outputVector = new Vector(); 
for(int p = 0; p < mainVector.size(); p++)   
{ 
     Vector second = new Vector(); 
     for(int h = 0; h < mainVector.size(); h++) 
     { 
      eachVector = mainVector.get(h); 
      String eachElement = eachVector.get(i); 
      second.add(eachElement); 
     } 
     outputVector.add(second); 
    i++;  
} 
+0

什么在您当前的实施中不起作用? – Cristina

+0

它仅针对主向量中的3 * 3向量或4 * 4向量迭代 – srinivas

+0

为什么不使用ArrayList >? –

回答

0

试试这个。

int i = 0; 
Vector outputVector = new Vector(); 
for (int p = 0; p < ((Vector)mainVector.get(0)).size(); p++) { 
    Vector second = new Vector(); 
    for (int h = 0; h < mainVector.size(); h++) { 
     Vector eachVector = (Vector)mainVector.get(h); 
     Object eachElement = eachVector.get(i); 
     second.add(eachElement); 
    } 
    outputVector.add(second); 
    i++; 
} 
+0

谢谢指出 – srinivas

0

你并不需要3级指数的变量,你有一个2维的数据结构:

Vector outputVector = new Vector(); 
for (int i = 0; i < mainVector.size(); i++) { 
    outputVector.add(new Vector()); 
    for (int j = 0; j < mainVector.get(0).size(); j++) { 
     ((Vector) outputVector.get(i)).add(mainVector.get(i).get(j)); 
    } 
} 

我要指出的是,这似乎很老派的Java。除非您有遗留项目,否则请考虑使用Vector<Vector<Object>> outputVector。您可能还想使用List作为Vector现在是considered obsolete