如何将值添加到指定的数组索引

时间:2013-09-27 01:37:36

标签: java

我试图将一个整数添加到数组的第四个索引。但它在删除第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]);
}

4 个答案:

答案 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;
  }