【发布时间】:2012-10-03 04:21:43
【问题描述】:
所以我想在特定索引中插入一个值,这意味着如果我要插入的索引不存在或大于大小我会抛出异常,否则我会使用这种方法来确保数组的容量不为空:
private void ensureCapacity(int size_wanted)
{
int max_capacity = storage.length;
if (size_wanted > max_capacity)
{
max_capacity = max_capacity * GROW_FACTOR +1;
storage = Arrays.copyOf(storage, max_capacity); // increases array size + copy contents
}
}
那么在这一点上,我想扩展数组并且已经复制了我原来的副本,并且已经增加了大小,对吧?
我需要做的就是使用循环并将所有内容向右移动一位,以便为我要插入的索引留出空间,对吗?
【问题讨论】:
-
您是否正在尝试构建 ArrayList?
-
我构建了一个模仿arraylist的动态数组
-
ArrayList 包含你正在做的动态数组实现已经存在了。
-
“不存在或大于大小”。实际上,您的意思是
>= size,记住索引是从 0 开始的。
标签: java arrays insert indexing