所以基本上,我的问题是我必须使数组的索引5 = n,右边的所有数字都会推送一个索引。 public void addThisNumberToIndex5(int number) { //在索引5处为数字数组添加数字 //所有现有的数字都应该向右移动。
for (int i = 5; i < numbers.length+1; i++)
{
number[i] = number[i+1];
}
numbers[5] = number;
}
我一直收到错误:“需要数组,但发现了int”但我不知道如何修复它。
答案 0 :(得分:4)
看看这一行:
number[i] = number[i+1];
现在想想你的两个变量:
number
的类型为int
numbers
的类型为int[]
现在想想你可能想要改变的那条线。
编译器会告诉您所需的所有信息 - 您编写的代码看起来像是尝试来访问数组,但是您正在尝试 on int
。希望它也会告诉你行号。
不是只是在这里修复错误,而是确保你能够充分了解情况,以便下次你能够自己纠正错误。
答案 1 :(得分:2)
第二行你有一个拼写错误。它应该是“数字”而不是“数字”。
另外,注意不要超过数组边界!也许你需要创建一个可以存储额外值的新数组?
答案 2 :(得分:1)
您还可以使用ArrayList。它是List接口的可调整大小的数组实现。你可以这样做:
myArrayList.add(5, number);
第一个参数是您要添加新项目的索引,第二个参数是您的编号。如果在索引n处插入元素,则该索引之后的所有其他元素“向右移动”。请参阅add方法。
答案 3 :(得分:0)
您将获得arrayIndexOutOfBounds异常,因为在上一次迭代中,您尝试获取不存在的numbers[numbers.length+1]
。
你有一个错误。你错过了's'字母。
number **s**[i] = number **s**[i+1];
你应该创建一个长度为“numbers”数组+ 1的新数组。我认为没有必要解释你之后应该做什么))