如何创建一个扩展自身的数组。我不想使用诸如此类的类ArrayList
来Vector
执行此操作。相反,我需要生成一个数组,在向其中添加元素时扩展它的大小。这是我老师的问题。
例如,我想要一个int[]
扩展它的大小。
例如,用户想要将学生 ID 输入到数组中。该数组没有固定的大小,因为没有固定的编号。在这种情况下的学生。当用户说他还想要一个时,数组的大小应该加一。
任何答案表示赞赏。
数组的长度是固定的,不能增加或减少数组的大小。
您可以做什么来创建更大尺寸的新数组,并使用Arrays#copyOf
源数组将值复制到新的目标数组。
注意:Arrays#copyOf
内部调用System.copy
执行浅拷贝。
这是来自文档的对您的老师有用的链接:
数组是一个容器对象,它包含固定数量的 单一类型的值。数组的长度是在创建数组时确定的。创建后,它的长度是固定的。
没有/ ..的唯一选择是创建一个新数组并将值复制到它。ArrayList
Vector
您的描述,'当用户说他想要更多时,数组的大小应该增加一。只是一个指针数组,在java中就是LinkedList。
无论您的老师说什么,如果不创建具有已编辑大小的新数组,就无法动态调整数组大小。我认为没有任何语言支持这个要求。只需创建一个新数组并复制现有数组即可。
我想我必须用增加的大小重新初始化数组,但在此之前,我想我必须将所有这些元素复制到一个临时数组中,然后再次将它们复制到大小已更改的原始数组中。
如果这是正确的,我的老师可能正在寻找这个。但这会降低性能。