2013-09-27 91 views
-1

我试图给数组的第四个索引添加一个整数。但它删除第4个元素后添加。从0如何将一个值添加到数组的指定索引

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]); 
} 
+1

什么?指数4是第五位。这按预期工作。 –

+1

数组的大小是固定的。改用'ArrayList'。 –

回答

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

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

-1
int position = 3; Array starts from 0. 4th index points the fifth value. 

int position = 3; 
if(ar.length > position) 
    { 
    ar[position] = 6; 
    } 
1

数组索引开始,所以在你需要做的array[3] = value第4位插入。所以,你得把position = 3

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

此外,由于您使用的是阵列,同时加入,你会取代它。如果你想添加没有更换,使用ArrayList。如果您不熟悉它,请参阅此ArrayList Examples

1

随着在索引i下面的行的代码

ar[i] = 6; 

您的值6分配给元件。你没有增加一个新的元素,并期望该阵列转移所有其他职位。 数组的大小是固定的。如果您想要一个可以增长的数据结构,请使用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

相关问题