如何增加数组的长度

我有一个快速的问题。 我在java中有一个整数数组,需要它的长度在整个类中变化。 具体来说,我需要在某些情况下增加1。 我试过这样的。

sbgHeadX = new int[ numberOfSBG ]; 

我需要的时候会增加整数变量numberOfSBG,但我觉得这不行。 还有别的办法吗?

我建议您使用ArrayList,因为您不必再​​担心长度了。 创建后,您无法修改数组大小:

数组是一个容器对象,它包含固定数量的单个类型的值。 创建数组时,将建立数组的长度。 创建后,其长度是固定的。

( 来源 )

Java中的数组具有固定大小,在声明时指定。 要增加数组的大小,必须创建一个具有更大大小的新数组,并将所有旧值复制到新数组中。

例如:

 char[] copyFrom = { 'a', 'b', 'c', 'd', 'e' }; char[] copyTo = new char[7]; System.out.println(Arrays.toString(copyFrom)); System.arraycopy(copyFrom, 0, copyTo, 0, copyFrom.length); System.out.println(Arrays.toString(copyTo)); 

或者,您可以使用像List这样的动态数据结构。

如果您不想或不能使用ArrayList,那么有一个实用方法:

 Arrays.copyOf() 

这将允许您指定新的大小,同时保留元素。

根据定义,数组是固定大小的。 您可以使用Arraylist,即“动态大小”数组。 实际上会发生什么是VM“调整ArrayList公开的数组的大小”*。

也可以看看

*使用反向复制数组

 Item[] newItemList = new Item[itemList.length+1]; //for loop to go thorough the list one by one for(int i=0; i< itemList.length;i++){ //value is stored here in the new list from the old one newItemList[i]=itemList[i]; } //all the values of the itemLists are stored in a bigger array named newItemList itemList=newItemList; 

您可以使用ArrayList。 数组具有固定数量的大小。

这个例子可以帮到你。 输出的例子非常简单。

输出:
 2 5 1 23 14 
新长度:20
索引5:29的元素
清单大小:6
删除索引2:1处的元素
2 5 23 14 29