如何创建一个动态扩展的数组?

时间:2013-07-17 10:52:05

标签: java arrays int

如何创建扩展自身的数组。我不想使用ArrayListVector等类来执行此操作。相反,我需要生成一个数组,在向其添加元素时扩展它的大小。这是我老师的问题。

比如说,我想要int[]扩展它的大小。

例如,用户想要将学生ID输入到数组中。由于没有固定的数量,因此阵列没有固定的大小。在这种情况下的学生。当用户说他还想要一个时,数组的大小应该增加一个。

感谢任何回答。

5 个答案:

答案 0 :(得分:3)

数组的长度是固定的,不能增加或减少数组的大小。

您可以创建具有更大大小的新阵列,并使用Arrays#copyOf源阵列将值复制到新目标阵列。

注意:Arrays#copyOf内部调用System.copy执行浅拷贝。

答案 1 :(得分:2)

以下是您的教师useful link,来自文档:

  

数组是一个容器对象,其中包含固定数量的值   单一类型。数组的长度是在数组时建立的   被建造。创建后,其长度是固定的

在没有ArrayList / Vector的情况下执行此操作的唯一选项是创建一个新数组并将值复制到该数组。

答案 2 :(得分:1)

您的描述,“当用户说他还想要一个时,数组的大小应该增加一个。”只是一个指针数组,它是java中的LinkedList。

答案 3 :(得分:0)

无论您的老师说什么,如果不创建具有编辑大小的新数组,就无法动态调整数组大小。我认为任何语言都不支持这一要求。只需创建一个新数组并复制现有数组。

答案 4 :(得分:0)

我想我必须以递增的大小重新初始化数组但在此之前,我想我必须将所有这些元素复制到一个临时数组中然后再将它们复制到原始数组中,其大小是改变。

如果这是正确的,我的老师可能正在寻找这个。但这会降低性能。