Java 是否正在创建大小未知的数组?
如果我有Java 是否正在创建大小未知的数组?,java,arrays,Java,Arrays,如果我有 class example { int x; int data[] = new int[x] } 如果我想创建一个新方法来创建一个大小比数据长度大一的新数组,我将如何继续?我不知道如何在不知道初始长度的情况下创建一个新数组,并在其中添加一个?像这样使用或更好地使用 与其这样做,我宁愿创建一个长度为数组长度两倍的新数组。始终制作新阵列的成本很高 当然,在对数组执行某些操作以向其添加元素之前,您无法执行方法。一旦它有了一些元素,你就可以把它的大小增加一倍,这样你就不必在一段时间内制造一个
class example {
int x;
int data[] = new int[x]
}
如果我想创建一个新方法来创建一个大小比数据长度大一的新数组,我将如何继续?我不知道如何在不知道初始长度的情况下创建一个新数组,并在其中添加一个?像这样使用或更好地使用
与其这样做,我宁愿创建一个长度为数组长度两倍的新数组。始终制作新阵列的成本很高 当然,在对数组执行某些操作以向其添加元素之前,您无法执行方法。一旦它有了一些元素,你就可以把它的大小增加一倍,这样你就不必在一段时间内制造一个新的了。如果新的双尺寸阵列仅满1/3,请将总大小减半以释放内存空间 显然,由于您的阵列可能很大,因此这些操作中的每一项都可能代价高昂
或者,您也可以使用ArrayList进行学习: 您可以动态创建一个数组 但是一旦声明数组,就不能更改它的大小 您需要创建更大的新数组,然后将旧数组的内容复制到其中。你可以看看这个方法。你可以看看这个 您可以在
示例
类中添加以下方法
public void increaseSizeOfArray(int incrementSize) {
if (incrementSize > 0 && data != null && data.length > 0) {
int copiedArray[] = Arrays.copyOf(data, data.length + incrementSize);
data = copiedArray;
}
}
为什么不使用ArrayList?但是,在您的示例中,它似乎是
0
或1+数据。length
为什么要发布一个无法编译的代码?您想要实现哪些列表无法实现的功能?这不是功能,而是一个学习过程。这是一门入门课,所以我想教授还没有介绍ArrayList。谢谢!真的很有用+如果我有更多的代表。
class example {
int size;
int data[];
public example(int size) {
this.size = size;
this.data = new int[size];
}
}
public void increaseSizeOfArray(int incrementSize) {
if (incrementSize > 0 && data != null && data.length > 0) {
int copiedArray[] = Arrays.copyOf(data, data.length + incrementSize);
data = copiedArray;
}
}