我如何运行addToEnd方法?

时间:2015-02-07 05:53:08

标签: java arrays class

这是我的第一个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] + " "); 
        }
}   

1 个答案:

答案 0 :(得分:0)

您尚未初始化private E[] data,因此访问data.length中的addToEnd会导致错误。

尝试为MyArrayList创建构造函数,并使用private E[] data初始化new。请务必最初将sizedata.length相同。