如何增加数组的长度
我有一个快速的问题。 我在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