2015-09-27 147 views
0

所以下面的方法的評論基本上是我需要完成的。從我創建的網站陣列獲取下一個網站?

我有一個名爲ResearchSite的類,它代表我創建的一個研究站點(它是一個簡單的紅色矩形,可以用鼠標按下來創建,並在點擊鼠標時變成藍色。接下來這個方法給了我一個變量,關於如何使用這個變量我很困惑,for循環是我創建的東西,我不確定它是否會起作用。

我該怎麼去下一個變量?

請注意,名爲_research的ArrayList是我創建的東西,可能不需要使用它,接下來的變量將最終需要使用。

private ResearchSite getNextSite() { 
    ResearchSite next = null; 
    /////////////////////////////////////////////////////////////// 
    // get next site from list of sites or from someone who has the 
    // list of sites. 
    /////////////////////////////////////////////////////////////// 

    for(int i = 0; i < _research.size(); i++) 
    { 
     _research.indexOf(0); 
     i++; 
    } 

    return next; 
} 
+0

我真的很困惑你想要達到的目標。如果你只想得到數組的下一個值,那麼類中的一個簡單的計數器將會很好。你爲什麼要調用'i ++'兩次? for循環的目的是什麼?也許一個[mcve]會阻止像這樣的更愚蠢的問題被問到:P –

+0

考慮到問題中提出的內容,不可能回答,因爲不清楚你想從哪裏獲得下一個「ResearchSite」。它被分配到第二行的'null'。把'null'看作'ResearchSite next'沒有被分配給任何'ResearchSite'的含義,直到你將它分配給一個實際的值,它總是爲'null'。我希望'ResearchSite'或者使用'new'關鍵字來初始化,例如E.G. '新的ResearchSite()',傳入必要的任何構造函數參數或者通過返回'ResearchSite'的方法填充。 –

+0

順便說一句,在這個例子中,for循環和_research列表是冗餘的。 –

回答

0

您不需要循環來從數組中拉出下一個元素。您需要一個計數器指向下一個元素,並在每次調用中增加該計數器。變量必須在方法之外(靜態或不是 - 取決於您的代碼)

public class ResearchSite { 
private static int nextIndex = 0; 
private ResearchSite getNextSite() { 
    return _research[nextIndex++]; 
} 
}