Java中,数组是管理一个同质且紧凑的项列表的对象。
因为元素列表是堆中一个紧凑的内存区域,所以直接向数组添加新元素,是不可能的。一旦构造了有限个元素的数组,它所占用的空间就无法调整大小。
所以我们不能重新分配或扩大已经分配的内存空间。
重新定义大小为n+1的新数组;
将这些n值复制到新数组中;
最后一个元素将用新值初始化;
数组值(它是一个引用)将使用新数组的地址重新初始化;
//初始化数组
int
[] oldArray = {
1
,
2
3
4
5
};
//新增元素值
newValue =
10
;
//定义一个新的数组
[] newArray =
new
[oldArray.length +
];
//将旧数组的值复制到新数组中
for
(
i=
0
;i < oldArray.length;i++)
newArray[i] = oldArray[i];
//或者直接使用系统的函数: arraycopy
//System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
//将新元素添加到新数组最后一个位置
newArray[newArray.length-
] = newValue;
// 复制新数组地址
// 旧的数组值将被垃圾收集器删除
oldArray = newArray;
原文链接:https://codingdict.com/