したがって、特定のインデックスに値を挿入したいのです。つまり、挿入したいインデックスが存在しないか、サイズよりも大きい場合は例外をスローします。それ以外の場合は、このメソッドを使用して、配列の容量がnullでないことを確認します。 :
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
}
}
次に、この時点で、配列を拡張して、サイズを大きくしたオリジナルのコピーをすでに作成していると思いますよね?
ループを使用して、すべてを1つずつ右にシフトし、挿入するインデックス用のスペースを残すだけです。