首页 > 解决方案 > 没有 copyOf() 数组不会调整大小

问题描述

我有一种方法,一旦达到其容量,它应该将数组的大小增加一倍

我试图找到一种在没有 Arrays.copyOf 的情况下调整其大小的方法,而是创建一个两倍大小的数组并将原始数组存储在新调整大小的数组中

作品

this.capacity = this.capacity * 2;
this.theData = Arrays.copyOf(this.theData, this.capacity);

不起作用, 而是丢弃第一个索引并用新值替换它,而不调整大小

double arrayResize[] = new double[this.capacity*2];
for (int i = 0; i<this.theData.length;i++){
        arrayResize[i] = this.theData[i];
}

标签: javaarrays

解决方案


您不能在 Java 中调整数组的大小。请改用 ArrayList 或 LinkedList。

如果您需要原始类型的列表并且不想将它们包装到对象中,请查看 Colt 或 Parallel Colt 库。


推荐阅读