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