繁体   English   中英

在数组中的任意 position 处插入一个元素

[英]Inserting an element at any position in array

我对编程比较陌生,希望能提供一些帮助。 我收到错误消息:数组索引超出范围。

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;

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

PS 如果您愿意更改更多代码,您应该考虑使用列表 我很乐意在我的答案中添加一个带有列表的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM