Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
填写java数组列表_Java - Fatal编程技术网

填写java数组列表

填写java数组列表,java,Java,我想用Java填充数组列表 我试着这样做是为了练习一下: ArrayList <int []> temp = new ArrayList <int []>(); for (int a = 1; a < 4 ; a++) { int [] array = new int [8]; for (int i = 0; i < 8; i++) { array [i] = i*a;

我想用Java填充数组列表 我试着这样做是为了练习一下:

ArrayList <int []> temp = new ArrayList <int []>();
    for (int a = 1; a < 4 ; a++) {
        int [] array = new int [8];
            for (int i = 0; i < 8; i++) {
                array [i] = i*a;
            }
        System.out.println(array);
        temp.add(array);    
    }
System.out.println(temp);

请问,为什么会有这种奇怪的结果?

temp
被定义为
ArrayList
,即数组列表。在Java中,当您打印某些内容时,例如通过调用
System.out.println(temp)
,通过隐式调用
toString()
将所讨论的对象转换为字符串
ArrayList
覆盖
toString()
并依次打印其每个元素。对于每个元素,
toString()
也被调用。但是,没有为
int[]
定义
toString()
,因此您只需获取对象引用,即外观有趣的字符串
[I@6d06d69c
。要以有意义的方式打印
temp
的值,您需要转换每个
int[]
到人类可读的内容。最简单的方法是使用
java.util.Arrays.toString()

因此,您可以尝试以下方法:

for (int[] element : temp) {
     System.out.println(Arrays.toString(element));
}

您要做的是打印对象类名表示,然后是@,后跟Hashcode

您的输出:

[I@15db9742, [I@6d06d69c, [I@7852e922]

I
是对象类表示

后跟@
的数字是哈希代码

因此,当您调用此
System.out.println(temp);
时,您正在打印
数组的默认表示形式。要从中获取有意义的内容和数据,您需要执行以下操作:

System.out.println(java.util.Arrays.toString(temp));

这是int数组的默认toString。是否已解决??
System.out.println(java.util.Arrays.toString(temp));