Java:如果未知,如何初始化数组大小?

标签 java

我要求用户输入 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/

相关文章:

java - Java 堆栈跟踪中的神秘位置

java - 如何将 JSP 变量值传递给此 Struts 标记

java - Axis2 的 wsdl2java 在 RPC/编码样式 Web 服务上失败

java - 如何关闭 "java: variable might not have been initialized"

java - 是否可以使用 Flyway 执行 NoSQL 迁移?

java - ReloadableResourceBundleMessageSource 与 ResourceBundleMessageSource - 缓存概念和其他差异

java - 将 JApplet 添加到 JPanel

java - Websphere App 8 : DataContentHandler requires String object, 被赋予类型为 com.sun.jersey.api.view.Viewable 类的对象

java - 在加载时设置 JLAbel 的文本

java - 页眉和页脚和freemarker