我要求用户输入 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
来解决这个问题。 .
如果您真的不能使用 List
,那么您可能不得不使用一个初始大小(可能是 10?)的数组,并跟踪您的数组容量与元素数量如果空间不足,您正在添加元素并将其复制到一个更大的新数组(这实际上是 ArrayList
内部所做的)。另请注意,在现实世界中,您永远不会这样做 - 您将使用专门为此类情况制作的标准类之一,例如 ArrayList
.
关于Java:如果未知,如何初始化数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776644/