Java中如何向数组添加新元素


Java中,数组是管理一个同质且紧凑的项列表的对象。

因为元素列表是堆中一个紧凑的内存区域,所以直接向数组添加新元素,是不可能的。一旦构造了有限个元素的数组,它所占用的空间就无法调整大小。

所以我们不能重新分配或扩大已经分配的内存空间。

向包含n个元素的数组中添加新元素的方法是:

  1. 重新定义大小为n+1的新数组;

  2. 将这些n值复制到新数组中;

  3. 最后一个元素将用新值初始化;

  4. 数组值(它是一个引用)将使用新数组的地址重新初始化;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//初始化数组
int[] oldArray = {1,2,3,4,5};
//新增元素值
int newValue = 10;
//定义一个新的数组
int[] newArray = new int[oldArray.length + 1];
//将旧数组的值复制到新数组中
for(int i=0;i < oldArray.length;i++)
newArray[i] = oldArray[i];
//或者直接使用系统的函数: arraycopy
//System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
//将新元素添加到新数组最后一个位置
newArray[newArray.length-1] = newValue;
// 复制新数组地址
// 旧的数组值将被垃圾收集器删除
oldArray = newArray;


原文链接:https://codingdict.com/