数组:将数字添加到索引5并向右推

时间:2011-12-02 07:32:29

标签: java arrays

所以基本上,我的问题是我必须使数组的索引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”但我不知道如何修复它。

4 个答案:

答案 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的新数组。我认为没有必要解释你之后应该做什么))