2013-09-27 78 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

相關問題