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;
    }
}