使用它作为变量时没有得到完整的数组

时间:2013-09-14 03:40:19

标签: java arrays

我是Java的新手并且学习它。 我有一个与阵列有关的问题,请你看一下吗?

我得到以下输出:[[Ljava.lang.String; @ 7a982589 来自以下代码:

String[][] multi = new String [][] {
{ "Scenarios", "Description", "1.0", "1.1", "1.2"},
{ "S1", "Verify hotel search", "Y", "Y", "Y"},
};
System.out.println(multi);

如果我放下以下内容:

System.out.println(multi[0][1]);

我得到了正确的输出。 描述

现在,为什么我没有通过“多”变量获得整个数组。

7 个答案:

答案 0 :(得分:1)

使用此util方法,因为您有一个2D数组。阅读api Arrays#deepToString(Object[])

Arrays.deepToString(multi);
  

返回。的“深层内容”的字符串表示形式   指定的数组。 如果数组包含其他数组作为元素,则   字符串表示包含其内容等。这种方法   用于将多维数组转换为字符串

答案 1 :(得分:0)

您所看到的是数组的默认toString()。如果您想要打印得漂亮,请使用Arrays.deepToString(arr);

答案 2 :(得分:0)

这是因为,不是打印存储在数组中的值,而是打印数组的状态。那是你说的时候 System.out.println(multi); 它含蓄地意味着 System.out.println(multi.toString());

答案 3 :(得分:0)

使用java.util.Arrays.deepToString(multi)。您所看到的是默认Object.toString(),因为数组不会覆盖toString()

答案 4 :(得分:0)

System.out.println在对象参数上调用toString以获取其文本表示。 Java数组也是对象,它们从java.lang.Object继承toString:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

答案 5 :(得分:0)

multi将保存对数组本身的引用,而multi [0] [1]将引用数组中的元素

答案 6 :(得分:0)

从数组中访问每个项目并将其打印出来:

for(int i=0;i<2;i++){
            for(int j=0;j<5;j++){
                System.out.println(multi[i][j]);
            }
        }