[英]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.