2009-10-01 27 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); 
    } 
    } 
}