访问二维数组Java的整个子列表



我很难过。这应该很简单。我正在尝试访问构成我2D数组的整个标准列表/候选名单(不确定它们的名字)。我看到的所有参考都向我展示了如何简单地从数组中选择或打印行/列项目。谢谢

int brobes[][]  = {{0, 1, 0}, {4, 4, 4}, {4, 5, 5}, {6, 7, 8}};
int my0[] = brobes[0];
println(brobes[0]);
//hoping it will print: {0,1,0} and so forth

我认为您对此有所思考。您的代码打印出来:

[0] 0
[1] 1
[2] 0

在处理中打印数组时,它会在其自身行上打印数组的每个索引。这是正确的行为,这意味着您正确地将数组从2D数组中获取。

(如果它是一个对象而不是ints,则更为复杂,在这种情况下,您必须使用 printArray() 函数。)

如果您想要默认打印格式以外的其他内容,那么您将必须自己做:

String s = "{";
for(int i : brobes[0]){
   s += " " + i;
}
s += " }";
println(s);

您也可以使用其他答案中的Java解决方案,但这可以防止您以后部署为JavaScript。

但是,如果您要做的就是从2D数组中获取数组,那么您已经在执行。然后,您可以像使用其他任何数组一样使用此数组。

如果您的目标仅在数组的一行打印,则使用

System.out.println(Arrays.toString(brobes[0]));

如果您的目标仅打印孔数组,则使用arrays.deeptostring()方法....

System.out.println(Arrays.deepToString(brobes));

这将打印数组的漂亮表示

[[0,1,0],[4,4,4],[4,5,5],[6,7,8]]

或使用双循环(如果要检查/操作/操作),并使用数组中的每个元素进行操作..

示例:

public static void main(String[] args) {
int brobes[][] = { { 0, 1, 0 }, { 4, 4, 4 }, { 4, 5, 5 }, { 6, 7, 8 } };
for (int i = 0; i < brobes.length; i++) {
    for (int j = 0; j < brobes[i].length; j++) {
    System.out.println(brobes[i][j]);
    }
    System.out.println("======================");
}
}

首先,尝试在数组之后更改括号以在数组之前制作它们,例如:int [] myo = brobes [0];

如果那不起作用,为什么不只是用循环穿越数组呢?这里的最终目标是什么?

以下解决方案在Java中。可能会用不同的语言来完成类似的事情(尽管不完全确定:)

这是因为brobes[0]本身就是一个数组。System.out.println将打印数组中使用的默认tostring方法,该方法是不可读取的格式。

您可以使用arrays.tostring将数组转换为字符串。

System.out.println(Arrays.toString(brobes[0]));

最新更新