繁体   English   中英

推方法给出空值

[英]Push method gives value 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]的空白处分配新元素。

main方法中的以下代码:

        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 ,

考虑到第二次尝试给出正确的打印结果,循环是否存在一些简单的错误?

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

更改

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM