核心Java阵列插入

时间:2013-01-30 07:22:58

标签: java

我想在数组中插入一个元素。我有一个大小为5的array1(其中所有teh索引都已满)。我创建了另一个大小为6的array2并将array1中的所有元素插入到array2中。现在我想在array2的第3个位置插入一个元素,使第3个位置的元素移动到第4个,第4个移动到第5个,第5个移动到6个。

我在下面开发了一个程序。但是获取字符串索引超出绑定异常。请帮我解决这个问题。

4 个答案:

答案 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集合。