我想在数组中插入一个元素。我有一个大小为5的array1(其中所有teh索引都已满)。我创建了另一个大小为6的array2并将array1中的所有元素插入到array2中。现在我想在array2的第3个位置插入一个元素,使第3个位置的元素移动到第4个,第4个移动到第5个,第5个移动到6个。
我在下面开发了一个程序。但是获取字符串索引超出绑定异常。请帮我解决这个问题。
答案 0 :(得分:3)
System.arraycopy(...)
方法是你的帮手。剩下的就是你自己做的。
答案 1 :(得分:2)
可悲的是,阵列并不是这项任务的最佳选择。如果您不必将自己绑定到数组,我建议您使用List(ArrayList)。你也有方法toArray()。
这是一个教程,但您会发现许多其他内容:http://www.java-samples.com/showtutorial.php?tutorialid=234
答案 2 :(得分:0)
我快速地鞭打你。
public int[] insert(final int[] array, final int index, final int...nums){
if(nums.length == 0){
return array;
}
int[] newArray = new int[array.length + nums.length];
int i = 0;
for(; i < index; i++){
newArray[i] = array[i];
}
for(int j = 0; j < nums.length; j++){
newArray[i + j] = nums[j];
}
for(; i < array.length; i++){
newArray[i + nums.length] = array[i];
}
return newArray;
}
我尝试亲自避免使用System.arraycopy,因为在这里您可以更轻松地看到更好的流程。如果你能看到它是如何工作的,那么比依赖别人的代码更好。
答案 3 :(得分:0)
如果您需要在数组中间插入并动态更改它的大小 - 最好使用LinkedList集合。