假设我有一个按升序排序的整数数组,我想插入一个新数字,我知道插入它的位置。我怎么能使用System.arraycopy。
System.arraycopy(items, i, items, i + 1, items.length+1);
items[i] = n;
或者我是否必须从插入的位置(移动位置一个元素)创建临时数组副本到临时数组,然后复制回原始数组
int[] newItems = new int[size + 1];
System.arraycopy(items, i, newItems, i + 1, items.length+1);
items[i] = s;
size++;
System.arraycopy(items, 0, newItems, i, i);
items = newItems;
答案 0 :(得分:0)
你的第一条路可行。
如果您不自信,请参阅arraycopy arraycopy上的文档。如果源和目标是相同的,它将被视为复制到临时数组,然后将其复制回原始数组,因此您可以确信它将起作用!
答案 1 :(得分:0)
一些想法/观察