如果插槽已满,我需要将阵列中的插槽数加倍。我的代码目前在 我的层次结构是
public class Stack {
Object filearray[]= new Object [5];
public Object push(element) {
if (filearray[filearray.length - 1] != null) {
Object temp_array[] = new Object[filearray.length*2];
int origonal = filearray.length*2;
//adding the element that the user passed in
temp_array[0] = element;
for(int i =0; i<filearray.length;i++) {
temp_array[i+1] =filearray[i];
}
//wiping the filearray clear
Object filearray[] = new Object [origonal];
for (int i=0; i<temp_array.length; i ++) {
filearray [i]=temp_array[i];
}
return filearray;
}
}
}
答案 0 :(得分:3)
新的双倍大小数组永远不会保留在实例中,因此请查看以下内容以解决此问题:
public Object push(element)
{
if (filearray[filearray.length - 1] != null)
{
Object temp_array[] = new Object[filearray.length*2];
int origonal = filearray.length*2;
//adding the element that the user passed in
temp_array[0] = element;
for(int i =0; i<filearray.length;i++)
{
temp_array[i+1] =filearray[i];
}
this.filearray = temp_array;
}
}
您不需要擦除旧数组只需更改它对新分配数组的引用。
答案 1 :(得分:2)