java解决了在运行时分配数组的问题
我在运行时分配数组时遇到问题,我的意思是
Scanner Scan = new Scanner(System.in);
int size;
int[] myarr = new int[size];
size = Scan.nextInt();
这里的问题是数组大小没有任何更新
线索:这是我正在处理的一个类的简化版本,其中数组的大小作为参数传递给构造函数,我不能在主函数中声明数组。数组需要保留该类的属性
你可以在下面搜索框中键入要查询的问题!
我在运行时分配数组时遇到问题,我的意思是
Scanner Scan = new Scanner(System.in);
int size;
int[] myarr = new int[size];
size = Scan.nextInt();
这里的问题是数组大小没有任何更新
线索:这是我正在处理的一个类的简化版本,其中数组的大小作为参数传递给构造函数,我不能在主函数中声明数组。数组需要保留该类的属性
# 1 楼答案
如果要频繁调整字段大小,则很可能不希望使用数组,因为它无法调整大小。如上面的一条评论所述,您可以使用
ArrayList
。然而,它仍然是一个List
,在内部是一个数组:即使您不必手动调整它的大小,JVM也会在内部进行调整-这可能会导致不良的运行时行为(仍然假设调整大小是您的首要任务)如果经常调整
List
的大小,您可能需要查看更动态的结构,例如LinkedList
然而,这个决定总是基于你将如何使用你的
List
以及你的主要目标是什么# 2 楼答案
您在实例化数组后定义了大小
# 3 楼答案
改变这个
到
请注意,数组的大小是固定的,如果不创建新数组,则无法在运行时动态更改大小
# 4 楼答案
现在你知道了
变量
size
已声明,但未初始化。您应该在使用它之前初始化它:注意:
myarr
后,无法更改其大小。如果要更改大小,可以创建一个具有所需大小的新数组,或者使用另一种结构,如ArrayList
李>