-1

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

4 回答 4

2

您正在用数字六替换第五项。一种更快的方法是:

ar[position] = 6; 

由于您使用的是 Java,我会尝试使用数组列表。他们有一些方法可以让你在给定的索引处添加项目。如果你不能做到这一点,你将需要把一切都转移过来。

int previous = 6;
int current = 0;
for(int i=position;i<ar.length;i++){
    current = ar[i];
    ar[i] = previous;
    previous = current;
} 

如果您的数组已满,您将丢失最后一个数字。

于 2013-09-27T01:42:54.273 回答
1

数组索引从 开始0,所以要插入第 4 位,您必须这样做array[3] = value。所以,你必须把position = 3

int position = 3; // array index start from 0

此外,由于您使用的是数组,因此在添加时,您将替换它。如果要添加而不替换,请使用ArrayList

如果您不熟悉它,请参阅此ArrayList 示例。

于 2013-09-27T01:40:13.447 回答
1

使用以下代码行

ar[i] = 6;

您正在将值分配给6index 处的元素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]

您需要在 index 处插入5

于 2013-09-27T01:42:36.520 回答
-1
int position = 3; Array starts from 0. 4th index points the fifth value.

int position = 3;
if(ar.length > position)
  {
     ar[position] = 6;
  }
于 2013-09-27T01:39:21.170 回答