-1

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

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

4

4 回答 4

3

System.arraycopy(...)方法是你的帮手。剩下的你自己做。

于 2013-01-30T07:27:33.550 回答
2

可悲的是,阵列不是这项任务的最佳选择。如果您不必将自己绑定到数组,我建议您使用 List (ArrayList)。你也有方法 toArray()。

这是一个教程,但您会发现许多其他教程:http ://www.java-samples.com/showtutorial.php?tutorialid=234

于 2013-01-30T07:25:55.877 回答
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,因为在这里您可以更轻松地看到更好的流程。如果你能看到它是如何工作的,这比依赖别人的代码更好。

于 2013-01-30T07:34:32.703 回答
0

如果您需要在数组中间插入并动态更改其大小 - 最好使用 LinkedList 集合。

于 2013-01-30T07:47:39.883 回答