数组项显示不正确

问题描述

我正在尝试编写一个程序来练习一些基本的 ADT 方法,如插入、追加等,但我的数组不会打印出写入项。我已经用 C++ 编写了它,我正在尝试用 Java 重做它。一切看起来都不错,但它只打印出 5 个零(因为数组的长度是 5)。这是代码并感谢您的帮助:

public class newADTClass {
    int length;
    int size;
    int[] Array;

    public newADTClass(int[] Array,int size,int length) {
        Array = new int[10];
        this.Array = Array;
        this.length = length;
        this.size = size;
    }

    void display(newADTClass arr) {
        int i;
        System.out.println("Elements are \n");
        for (i = 0; i < arr.length; i++) {
            System.out.printf("%d ",arr.Array[i]);
        }
    }

    public static void main(String[] args) {
        int[] arr1 = {2,3,4,5,6};
        newADTClass arr2 = new newADTClass(arr1,10,5);
        arr2.display(arr2);
    }
}

解决方法

您正在构造函数中创建一个新的空白数组。如果您从构造函数中删除 Array = new int [10];,则代码将起作用。

public newADTClass(int[] Array,int size,int length) {
    this.Array = Array;
    this.length = length;
    this.size = size;
}
,

您将绝对新创建的数组对象分配给 this.Array 而不是 Array 参数。默认情况下,int[] 值为 0。