输入数组并且不知道数组长度的解决方案
在Java编程中,有时我们需要输入一个数组,但是却不知道数组的长度。这种情况下,我们需要动态地获取用户输入的数据,并将其存储在一个数组中。本文将介绍如何在Java中实现这样的功能,让我们一起来看看吧。
解决方案
为了实现动态输入数组并且不知道数组长度的功能,我们可以使用ArrayList
类,它是Java中的一个动态数组类。ArrayList
类具有可以自动增长和缩减容量的特性,因此非常适合处理不确定长度的数组。
我们可以按照以下步骤来实现这个功能:
- 创建一个
ArrayList
对象来存储用户输入的数据。 - 使用
Scanner
类来获取用户输入的数据。 - 将用户输入的数据添加到
ArrayList
中。 - 将
ArrayList
转换为数组。
下面我们来看具体的代码实现。
import java.util.ArrayList;
import java.util.Scanner;
public class DynamicArrayInput {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the numbers (enter -1 to stop):");
while (true) {
int num = scanner.nextInt();
if (num == -1) {
break;
}
list.add(num);
}
// Convert ArrayList to array
int[] array = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
System.out.println("Array elements:");
for (int num : array) {
System.out.print(num + " ");
}
}
}
在上面的代码中,我们首先创建了一个ArrayList
对象list
来存储用户输入的数据,然后使用Scanner
类来获取用户输入的数据。我们使用一个while
循环来不断获取用户输入的数据,当用户输入-1时,结束循环。接着,我们将ArrayList
转换为数组array
,并输出数组中的元素。
示例
让我们看一个实际的例子来演示上面的代码。
假设我们想要输入一组数字并计算它们的平均值,但不知道输入的数字个数。我们可以使用上面的代码来实现这个功能。
Please enter the numbers (enter -1 to stop):
5
8
10
-1
输出结果:
Array elements:
5 8 10
平均值为(5 + 8 + 10) / 3 = 7.67
流程图
下面是输入数组并且不知道数组长度的流程图:
flowchart TD
Start --> 输入数字
输入数字 --> 数字不为-1 --> 添加数字到ArrayList
数字不为-1 --> 输入数字
数字为-1 --> 转换ArrayList为数组
转换ArrayList为数组 --> 输出数组元素
输出数组元素 --> Stop
序列图
下面是输入数组并且不知道数组长度的序列图:
sequenceDiagram
participant User
participant Program
User ->> Program: 输入数字
loop
Program ->> Program: 数字不为-1
Program ->> Program: 添加数字到ArrayList
end
Program ->> Program: 转换ArrayList为数组
Program ->> User: 输出数组元素
结论
通过使用ArrayList
类,我们可以很方便地实现输入数组并且不知道数组长度的功能。这种方法既简单又灵活,可以满足我们在编程中遇到的这种需求。希望本文对你有所帮助,谢谢阅读!