在数组中的任意位置插入元素



我对编程比较陌生,如果能提供一些帮助,我将不胜感激。我收到错误消息:数组索引越界。

static int[] insert1(int z, int arr[], int ins, int p)
{
int i;

int newarray[] = new int [z + 1];
for (i = 0; i < z + 1 ; i++) {
if (i < p - 1 )
newarray[i] = arr[i];
else if (i == p - 1)
newarray[i] = ins;
else
newarray[i] = arr[i - 1];
}
return newarray;
}
public static void main(String[] args) {
int ins = 20;
int z = 5;
Scanner scan = new Scanner(System.in);
int p = Integer.parseInt((scan.next()));
arr = insert1(a, arr, ins, p);
System.out.println("Insert Array:t" + Arrays.toString(arr));
}
}

对于初学者来说,不必输入长度会让你的生活轻松很多。只需使用arr.length就可以得到相同的结果,而不必担心其他变量。

插入操作有一个良好的开端。一种更有效、更不复杂的方法是使用多个for循环。

int newArray[] = new int[arr.length + 1];
for (int i = 0; i < p; i++) {
newArray[i] = arr[i];
}
newArray[p] = ins;
for (int i = p + 1; i < newArray.length; i++) {
newArray[i] = arr[i - 1];
}
return newArray;

如果这不能满足你的要求,请告诉我,我可以修改它。

附言:如果你对更改更多的代码感到满意,你应该考虑使用列表。我很乐意为我的答案添加一个带有列表的版本。

最新更新