如何迭代向量向量并在下面的场景中获得输出?

时间:2017-06-13 10:01:15

标签: java vector collections

我必须得到每个向量的第一个元素并添加到另一个向量中并继续直到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]] [向量(向量)]

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++;       
}

2 个答案:

答案 0 :(得分: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++;
}

答案 1 :(得分: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