Java 中的可变长度(动态)数组

2022-08-31 09:01:03

我想知道如何初始化一个整数数组,使其大小和值在我的程序执行过程中发生变化,有什么建议吗?


答案 1

是:使用 ArrayList

在Java中,“普通”数组是固定大小的。你必须给它们一个尺寸,不能扩展它们或收缩它们。要更改大小,您必须创建一个新数组并复制所需的数据 - 这效率低下,对您来说很痛苦。

幸运的是,有各种各样的内置类来实现通用数据结构,以及其他有用的工具。您需要检查 Java 6 API 以获取它们的完整列表。

一个警告:ArrayList只能保存对象(例如整数),而不能保存基元(例如ints)。在大多数情况下,自动装箱/自动取消装箱会默默地为您处理这个问题,但是根据您正在做的事情,您可能会遇到一些奇怪的行为。


答案 2

Java 中的数组大小是固定的。你需要的是一个ArrayList,它是Java中许多非常有价值的集合之一。

而不是

Integer[] ints = new Integer[x]

您使用

List<Integer> ints = new ArrayList<Integer>();

然后更改您使用的列表以及您可以在相应的Javadocs中找到的许多其他方便的方法。ints.add(y)ints.remove(z)

我强烈建议您研究Java中可用的Collections类,因为它们非常强大,并为您提供了许多内置功能,Java新手倾向于尝试不必要地重写自己。