这是我的第一个MyArrayList类,其中包含我试图运行的addToEnd方法。
public class MyArrayList <E extends Comparable<E>>implements List<E> {
private E[] data;
private int size = 0;
private void reallocate(){
size = 2 * size;
data = Arrays.copyOf(data, size);
}
public boolean addToEnd(E e) {
if (size == data.length){
reallocate();
}
data[size++] = e;
System.out.println();
return true;
}
我的第二个类,ArraySorterTester,是我试图调用我的addToEnd方法的地方,但由于某种原因它不起作用,我一直收到错误。
public class ArraySorterTester {
public static void main(String [] args){
Integer[] test = new Integer[] {1, 2, 4, 6, 8 };
MyArrayList<Integer> inserter = new MyArrayList<Integer>();
boolean sorted = true;
inserter.addToEnd(10);
for (int k = 0; k < test.length; k++) {
System.out.print(test[k] + " ");
}
}
答案 0 :(得分:0)
您尚未初始化private E[] data
,因此访问data.length
中的addToEnd
会导致错误。
尝试为MyArrayList
创建构造函数,并使用private E[] data
初始化new
。请务必最初将size
与data.length
相同。