2014-10-29 67 views
-1

我有動態數組大小。我想增加1的大小,並在最後一個索引數組中插入一個新元素。這個怎麼做?例如現在:我的數組大小是2,當我做循環時,我增加了1的數組大小,並嘗試在最後一個數組插入一個新的元素。我已經嘗試了下面的代碼,但每當遇到空數組時,循環停止。我想是這樣的:陣列[0] =值,陣列[1] =值,陣列[2] =備註增加數組大小並在最後索引插入元素

  while (z <= array.length+1){ 

      System.out.println("z: "+z); 

      value = array[z]; 

       str_value += value + ","; 

       if (array[z] == null){ 

        str_value += remarks + ","; 
        continue; 
       } 

       System.out.println("value: "+value);     
     z++; 
     } 
    System.out.println("str value: "+str_value); 
+1

名單? – BevynQ 2014-10-29 01:54:58

+0

Java數組不是動態的。像'ArrayList'一樣使用'Collection',它由一個數組支持,但是它是動態的。 – 2014-10-29 01:55:08

+0

你如何聲明你的數組?由於Java數組(不是數組元素)是不可變的,它們的維度(一旦定義)不能改變。 – 2014-10-29 01:56:53

回答

1

(/無拷貝創建一個新的)不能調整的Java數組。好像你正在尋找ArrayList這是一個Java中的動態數組。以下是一個示例:

ArrayList<String> al = new ArrayList<String>(); 

    al.add("JAVA"); 
    al.add("PERL"); 
    al.add("SQL"); 

    //get elements by index 
    System.out.println("Element at index 1: "+al.get(1)); 
+0

我試過使用數組列表,它解決了我的問題。謝謝。 – 2014-10-29 02:11:38

+0

歡迎您! – Chiseled 2014-10-29 02:39:32

0

您不需要通過引用array [array.length()+ 1]添加到數組中。這隻會給數組越界的錯誤。

正如其他人所說,你不能將一個空元素添加到數組。

如果你需要創建一個動態數組,你應該考慮某種列表,在這種情況下可能是一個ArrayList。

0

您可以嘗試使用System.arraycopy()

int[] a = new int[]{1,2,3,4,5}; 
int[] b = new int[5]; 

System.arraycopy(a, 0, b, 0, a.length); 

您可以將額外的元素添加到第二個數組,然後你爲什麼使用數組,而不是一個

鏈接複製到JavaDoc參考

相關問題