数组未按预期初始化

Array not initializing as predicted

我是 Java 的初学者。我最近读了这个

new分配的数组中的元素会自动初始化为零(对于数值类型)、false(对于布尔值)或null(对于引用类型) 参考 https://www.geeksforgeeks.org/arrays-in-java/

int n=scan.nextInt();
int a[]=new int[n];
int a1[]=new int[5];
System.out.println(a);
System.out.println(a1);

两个数组都给我一个乱码,类似于 [I@4b67cf4d

为什么会这样?

您需要定义 ToString() 才能为数组等对象打印出漂亮的字符串。默认情况下,数组没有定义。

改为尝试使用

Arrays.toString(a)

您正在打印数组本身的字符串表示形式,而不是它们的内容。该特定表示对数据类型和存储地址进行编码。

获得所需内容的一种方法是使用 java.util.Arrays.toString():

System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(a1));

如果你想要所有的值都用空格分隔,你可以使用for循环打印出这些值;这比较慢,但您可以根据自己的喜好进行更改。

    int n = scan.nextInt();
    int a[] = new int[n];
    int a1[] = new int[5];

    // print a
    System.out.println("Array a values:");
    for (int i = 0; i < a.length; i++) {
        System.out.print(a[i] + " ");
    }
    System.out.println(); // new line

    // print a1
    System.out.println("Array a1 values:");
    for (int i = 0; i < a1.length; i++) {
        System.out.print(a1[i] + " ");
    }
    System.out.println();

你的代码写得很好,不断进步!