2014-10-29 68 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参考

相关问题