Java中动态数组的实现

来源:互联网 发布:和玛丽苏开玩笑 知乎 编辑:程序博客网 时间:2024/05/19 03:21

java中数组在初始化之后其长度也就确定了不能更改,而对于未初始化的数组则在编译期间会出错。所以在java中理论上是不能动态的增加数组的长度的,但是有需求就会有解决办法。其实现的原理其实也并非是真实的增加了数组的长度,而是创建了一个新的数组,这个数组的长度是我们所需要的长度,并且将原数组的引用指向了新创建的数组。代码如下:

public Object[] asynExpandArray(Object[] objects, int length) {  if(length<=objects.length) {    return objects;    }  Object[] temp = new Object[length];  System.arraycopy(objects,0,temp,0,obj ects.length);  return temp;}

用的方法就是System.arraycopy(这个方法有点奇怪,不符合java的命名规则。。。0)

0 0