我试图将一个整数添加到数组的第四个索引。但它在删除第4个元素后添加。
int ar[] = {1,2,3,4,5,7,8,9};
int position = 4;
for(int i=0;i<ar.length;i++){
if(i==position){
ar[i] = 6;
}
System.out.println(ar[i]);
}
答案 0 :(得分:1)
数组索引从0
开始,因此要插入第4位,您必须执行array[3] = value
。所以,你必须放position = 3
int position = 3; // array index start from 0
此外,由于您正在使用数组,因此在添加时,您将替换它。如果您想在不替换的情况下添加,请使用ArrayList。
如果您不熟悉,请参阅此ArrayList Examples。
答案 1 :(得分:1)
使用以下代码行
ar[i] = 6;
您要将值6
分配给索引i
处的元素。您没有添加新元素并期望数组转移所有其他位置。 数组的大小固定。如果您想要一个可以增长的数据结构,请使用ArrayList
。
ArrayList<Integer> ar = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 7, 8, 9));
int position = 4;
ar.add(i, 6);
System.out.println(ar);
add(int, T)
方法将当前i
索引处的所有元素向右移动,并在i
处插入指定的元素。以上将打印
[1, 2, 3, 4, 6, 5, 7, 8, 9]
您需要在索引5
处插入。
答案 2 :(得分:1)
您正在使用数字6替换第五项。更快的方法是:
ar[position] = 6;
由于您使用的是Java,我会尝试使用arraylist。它们具有允许您在给定索引处添加项目的方法。如果你不能这样做,你将需要改变一切。
int previous = 6;
int current = 0;
for(int i=position;i<ar.length;i++){
current = ar[i];
ar[i] = previous;
previous = current;
}
如果您的阵列已满,您将丢失最后一个号码。
答案 3 :(得分:-1)
int position = 3; Array starts from 0. 4th index points the fifth value.
int position = 3;
if(ar.length > position)
{
ar[position] = 6;
}