原文链接:http://www.blogjava.net/qujinlong123/archive/2007/08/27/140048.html
关键代码:
public Object remove(int index)
{
if (index >= size || index < 0)
throw new IndexOutOfBoundsException("Index out of bounds.");
Object value = values[index];
if (index != size - 1)
{
// 将数组最后一个值补充到被移除的位置。
values[index] = values[size - 1];
}
values[size - 1] = null; // 防止该位置永久持有对象的引用
size --;
return value;
}
就是删除的时候不拷贝复制,而是直接用最后元素代替要删除的元素。
这避免了复制数组,破坏了原来数据的顺序。
快速随机访问和快速删除倒是都做到了。
使用的时候要考虑数据的顺序是否重要。
如果仅是生成随意数据测试,这个方法倒是不错。