[英]java - deleting an element of an array from any position and shifting the remaining elements
[英]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.