Push方法赋值null

时间:2015-01-06 14:11:11

标签: java object null

我正在尝试创建一个push方法,该方法将首先放置任何给定元素,并在数组中进一步推送已存在的元素。

首先,我创建了一种方法来增加数组的大小并进一步推送已存在的元素。

private void newBiggerObj(){
    Object[] temp = new Object[arr.length+1];
    for (int i = 0; i<arr.length; i++){
        if (i == 0){
            temp[i+1] = arr[i];
        }
    }
    arr = temp;
}

然后我在里面使用这个方法:

    public void push(Object element) {
    newBiggerObj();
    arr[0] = element;

}

在arr [0]的假空位处分配新元素。

主方法中的以下代码:

        hej.push(3);
    System.out.println(hej.toString());
    hej.push(4);
    System.out.println(hej.toString());
    hej.push(7);
    System.out.println(hej.toString());
    hej.push(2);
    System.out.println(hej.toString());

给我打印出来:

3 , 4 , 3 , 7 , 4 , null , 2 , 7 , null , null ,

如果第二次尝试给出正确的打印输出,那么循环是否存在简单的错误?

1 个答案:

答案 0 :(得分:1)

您没有将旧数组复制到新数组。您只复制第一个元素:

更改

private void newBiggerObj(){
    Object[] temp = new Object[arr.length+1];
    for (int i = 0; i<arr.length; i++){
        if (i == 0){ 
            temp[i+1] = arr[i];
        }
    }
    arr = temp;
}

private void newBiggerObj(){
    Object[] temp = new Object[arr.length+1];
    for (int i = 0; i<arr.length; i++){            
        temp[i+1] = arr[i];
    }
    arr = temp;
}