[英]getSourceClassName method in java logRecord gives null value
[英]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.