0

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

例如,我想要一个int[]扩展它的大小。

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

任何答案表示赞赏。

4

5 回答 5

3

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

您可以做什么来创建更大尺寸的新数组,并使用Arrays#copyOf源数组将值复制到新的目标数组。

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

于 2013-07-17T10:54:33.363 回答
2

这是来自文档的对您的老师有用的链接:

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

没有/ ..的唯一选择是创建一个新数组并将值复制到它。ArrayListVector

于 2013-07-17T10:59:51.340 回答
1

您的描述,'当用户说他想要更多时,数组的大小应该增加一。只是一个指针数组,在java中就是LinkedList。

于 2013-07-17T10:59:13.937 回答
0

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

于 2013-07-17T10:58:53.447 回答
0

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

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

于 2013-07-17T11:09:38.497 回答