簡體   English   中英

如何動態初始化2D對象數組

[英]How to initialize dynamically a 2d object array

我在嘗試實現一種動態初始化對象的2D數組的方法時有些困惑。

我知道用哈希表進行雙括號初始化,但是在這種情況下,我不想這樣做,我想學習如何手動進行。 我知道一定有辦法。

所以這是我到目前為止所掌握的,但是不正確:

return new Object[][] {
                          {
                              buildNewItem(someValue),
                              buildNewItem(someValue),
                              buildNewItem(someValue),
                              buildNewItem(someValue),
                              buildNewItem(someValue),
                           }    
};

如您所見,我缺少第一個維的值分配,該維應該表示行(0,1,2,3 ...)。

您能幫我找出如何完成此初始化嗎? 在return語句之前創建對象不是一種選擇,我想隨時隨地將其作為單個return語句一起執行。

像這樣:

    return new Object[][] {new Object[]{}, new Object[]{}};

您的代碼正確,但僅適用於第0行。您可以使用{}添加更多行

static int count = 0;
public static Integer buildNewItem() {
    return count++;
}
public static void main(String[] args) {

    System.out.println(Arrays.deepToString(new Object[][]{
            {buildNewItem(), buildNewItem(), buildNewItem()},
            {buildNewItem(), buildNewItem(), buildNewItem()} <--Use {} to separate rows
                           }));

}

輸出:

[[0, 1, 2], [3, 4, 5]]

手動:

Object[][] obj = new Object[ROWS][COLS];
for(int i = 0 ; i < ROWS ; i++) {
    for(int j = 0 ; i < COLS; j++) {
        obj[i][j] = buildNewItem(someValue);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM