Java:如果不知道如何初始化数组大小?

我要求用户输入1到100之间的数字,并将它们分配到数组中.数组大小未被初始化,因为它取决于用户输入数字的次数. 我应该如何分配数组长度? 如果用户输入5 6 7 8 9(5个数字),则 int[] list; 变 int[] list = new int[5]; 我试图使用一个循环,但它不会停止. int[]

我要求用户输入1到100之间的数字,并将它们分配到数组中.数组大小未被初始化,因为它取决于用户输入数字的次数.

我应该如何分配数组长度?

如果用户输入5 6 7 8 9(5个数字),则

int[] list;

int[] list = new int[5];

我试图使用一个循环,但它不会停止.

int[] integers;
int j = 0;
do {
       integers = new int[j + 1];
       integers[j] = in.nextInt(); 
       j++;      
} while((integers[j-1] >= 1) ||(integers[j-1]) <= 100);

解决方法

你应该使用
List这样的东西,而不是数组.作为一般的经验法则,当您不知道要在手之前添加到数组中的元素数量,请改用List.大多数人可能会通过使用
ArrayList来解决这个问题.

如果您真的不能使用列表,那么您可能必须使用一些初始大小(可能是10?)的数组,并跟踪您的数组容量,而不是添加多少元素,并将元素复制到一个新的更大的数组,如果你用完了(这本质上是ArrayList在内部做的).还要注意,在现实世界中,你永远不会这样做 – 你将使用专门为这样的案例制作的标准类之一,例如ArrayList.

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部