Raj*_*ala 5 java collections garbage-collection
我正在编写自己的数组列表.这是删除方法,
public E remove(int index){
E value =(E) elementData[index];
for(int i=index;i<size-1;i++){
elementData[i]=elementData[i+1];
}
elementData[size-1]=null;
return value;
}
Run Code Online (Sandbox Code Playgroud)
现在我将执行一些删除操作
Box<Integer> list = new Box<>();
for(int i=1;i<5;i++){
list.add(i);
}
print(list);
list.remove(1);
print(list);
Run Code Online (Sandbox Code Playgroud)
现在这将导致以下输出,
1 2 3 4
1 3 4 null
Run Code Online (Sandbox Code Playgroud)
但是当我使用API中的ArrayList时,我会得到输出为
1234
134
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?有人可以解释我哪里出错了.
我想你需要更新size
后续remove()
操作:
public E remove(int index){
E value =(E) elementData[index];
for(int i=index;i<size-1;i++){
elementData[i]=elementData[i+1];
}
elementData[size-1]=null;
--size; // Decrement size
return value;
}
Run Code Online (Sandbox Code Playgroud)
您还需要确保它index
在elementData
数组的边界内.
归档时间: |
|
查看次数: |
112 次 |
最近记录: |