问题描述
我正在尝试编写一个程序来练习一些基本的 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。