我们可以在Java中使用可变长度参数来实现动态数组吗?
我的问题是,在java中,我们知道不能创建动态数组,因为在初始化数组索引值之前,我们需要定义数组大小。但我们都知道,java有一个称为可变长度参数的特性,它将创建一个动态数组
最佳示例:公共静态void main(字符串…参数) 因此,使用这个可变长度参数,我们实际上可以为args数组插入任意数量的元素。这是什么矛盾,java的基本规则说您不能,但另一个特性支持这样做
你可以在下面搜索框中键入要查询的问题!
我的问题是,在java中,我们知道不能创建动态数组,因为在初始化数组索引值之前,我们需要定义数组大小。但我们都知道,java有一个称为可变长度参数的特性,它将创建一个动态数组
最佳示例:公共静态void main(字符串…参数) 因此,使用这个可变长度参数,我们实际上可以为args数组插入任意数量的元素。这是什么矛盾,java的基本规则说您不能,但另一个特性支持这样做
# 1 楼答案
不,不会。它将创建一个静态大小的数组,静态大小由命令行参数的数量定义(在您的示例中)。创建此数组后,无法增加或减少其大小。这和创建一个固定数组没有什么不同,数组的大小是通过编程计算的
如果你想要一个动态的数组(即改变大小),那么Java就不提供。您需要使用列表或其他集合
# 2 楼答案
这并不矛盾。不变的是已创建的数组的大小
是的,
(String... args)
允许您为数组指定任何大小,如下所示:允许您为
args
选择任何大小。通过调用main(String...)
和您没有意识到的是,两个结果数组的大小都不会改变。数组的大小只有在编译时不需要知道的情况下才是动态的,但一旦创建(在运行时),数组的大小就不能更改
# 3 楼答案
说到vararg方法,可以将其视为接受数组的方法:
与
这只是一种语法上的糖分,允许使用varags定义的方法被称为:
而不是先创建数组
但如果是这样,则应该在创建数组时指定数组的长度(在外部)。此特定函数f将在运行时接受任意长度的数组