2009-10-01 25 views
-5

请向我解释这段代码;我不明白为什么额外的矢量TempC需要:这段代码中的临时向量实例的目的是什么?

Vector A = new Vector(); 
Vector B = R.funcVector("TemporaryVector"); 

if(B!=null) 
{ 
    for(int i=0;i<B.size();i++) 
    { 
    Vector TempC = new Vector(); 
    Vector D = new Vector(); 

    TempC = (Vector)B.elementAt(i); 

    if(...) 
    { 
     D.addElement(TempC.elementAt(1); 

     // ... 

     A.addElement(D); 
    } 
    } 
} 
+0

这是家庭作业? – KLE 2009-10-01 08:30:51

+1

除非你告诉我们R是什么以及它在做什么。 – 2009-10-01 08:31:10

+1

这真的很难回答,因为我们不知道R是什么,funcVector应该返回什么方法,以及整个代码应该做什么。请提供更多上下文信息。 – Jesper 2009-10-01 08:34:04

回答

2

首先一个问题 - 你写的代码,或者你能怪别人?这是不正确的,相当混乱。 Java至少有一些命名约定......

在这段代码中 - 或者至少是在修正后的版本中 - 您将存储向量中的向量。你从B中取一个向量,把它分配给一个局部变量,把这个向量中的第一个元素加到向量A中,把整个向量A加到D.

你不需要'TempC',但它至少增加了最低清晰度的代码;)

你可以做一个

D.addElement(((Vector) B.getElementAt(i)).elementAt(1)); 

以及。

编辑

这里的去模糊代码 - 至少我是如何理解它;):

Vector<Vector<Object>> a = new Vector<Vector<Object>>(); 
Vector<Vector<Object>> b = createVector(r, "TemporaryVector"); 

if (b != null) { 
    for(Vector<Object> tempC: b) { 
    Vector d = new Vector<Object>(); 

    if(isOk()) { 
     d.addElement(TempC.elementAt(1)); 

     // more calculations 

     a.addElement(d); 
    } 
    } 
}