有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中调整数组大小?

作为标题,我如何在java中调整数组的大小,而不导入任何库,包括ArrayListArrays.copyOf。。。等等

此外,我必须在程序中一次又一次地调整大小,输入数据未知。(即,我有一个小数组,但当数据增加时,如何调整其大小?


共 (5) 个答案

  1. # 1 楼答案

    您可以使用forEach将值复制到放大的新数组

    IntStream.range( 0, oldArray.length ).forEach( i -> newArray[i] = oldArray[i] );

  2. # 2 楼答案

    Java没有用于分配存储的“调整大小”选项。您必须分配所需大小的新存储,并将数据从旧存储复制到新存储

    您可以使用System.arraycopy()来复制数据。ArrayListVector类会自动执行这些重新分配和复制操作,因此,如果不使用它们,您就是在重新发明轮子

    当然java.lang.System是自动导入到每个java程序中的,因此,根据需要,您不需要import java.lang.System;来实现这一点

  3. # 4 楼答案

    一旦声明数组,就不能增加其大小。所以您必须在java中使用集合框架,可以是ArrayList或LinkedList

    这就是Array和ArrayList之间的区别。在ArrayList中,您可以动态添加元素,无需增加其大小

  4. # 5 楼答案

    不幸的是,you cant resize an array in java

    您可以做以下几件事:

    1. 接收新数据时,创建一个新数组,并复制旧数组+新数据

    2. 使用一个ArrayList,它可以在向数组添加数据时使数组变大

    3. 使用java.util.Arrays.copyOf(...)。这将返回一个更大的数组,其中包含前一个数组的内容