布局是这样的
index num
0 [10]
1 [20]
2 [30]
(Add 35 here)
3 [40] Move elements down
4 [50]
5 [60]
6 [70]
那我的方法是这样的
public static void method(int[] num, int index, int addnum)
{
}
如何在其中添加 35?
试过这个:
public static void method(int[] num, int index, int addnum)
{
int index = 10;
for(int k = num.length k>3; k++)
{
Num[k]=num[k++]
}
Num[3] = 35;
最佳答案
因为这是你自己完成的事情,所以我只提供实现方法,不提供代码:
如果您将数字设置在 index
位置,您将覆盖之前存在的值。因此,您需要做的是将每个元素从 index
开始向数组末尾移动一个位置:num[x]
变为 num[x+1]
等
您会发现您需要以相反的顺序执行此操作,否则您将用 num[index]
中的值填充您的数组。
在此过程中,您需要决定如何处理数组的最后一项 (num[num.length - 1]
):
- 您可以覆盖它,丢弃该值
- 你可以从你的函数中返回它
- 如果它不为零,你可以抛出异常
- 您可以创建一个比当前数组大 1 个条目的新数组,而不是保留所有值
- 等等
在此之后,您复制了 num[index]
:该值也存在于 num[index+1]
中,因为您已将其移走。
现在可以在不覆盖现有值的情况下在所需位置写入新值。
编辑
您的代码中有几个错误:
- 你递增
k
,你需要递减它(k--
,而不是k++
) - 您在循环体中再次修改
k
:它在每个循环中更新两次 - 如果你从
k = num.length
开始,你会尝试写在num[num.length + 1]
,这是不可能的
关于java - 将元素添加到数组java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9823503/