
本文介绍如何使用 java 实现动态接收用户输入的整数,无须预先指定大小,通过循环持续添加至 arraylist,并在用户确认后打印全部内容。
本文介绍如何使用 java 实现动态接收用户输入的整数,无须预先指定大小,通过循环持续添加至 arraylist,并在用户确认后打印全部内容。
在 Java 中,ArrayList 是一种动态数组,非常适合处理运行时才确定数量的数据。本教程将带你实现一个交互式程序:持续接收用户输入的整数,直到用户明确输入 “yes” 表示结束,随后一次性输出所有已录入的数据。
核心实现逻辑
- 使用 Scanner 获取控制台输入;
- 采用无限 while (true) 循环接收整数,并添加进 ArrayList<Integer>;
- 每次添加后询问用户是否完成输入,通过 String.equalsIgnoreCase("yes") 判断是否退出循环;
- 最终遍历并打印整个列表。
完整可运行代码
import java.util.ArrayList;
import java.util.Scanner;
public class UserInputArrayList {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Enter an integer to add to the ArrayList: ");
int input = scanner.nextInt();
numbers.add(input);
System.out.print("Is the input for ArrayList done? (Type 'yes' to finish, anything else to continue): ");
String done = scanner.next().trim();
if (done.equalsIgnoreCase("yes")) {
break;
}
}
System.out.println("\nThe ArrayList data entered by the user:");
for (int i = 0; i < numbers.size(); i++) {
System.out.println("Element " + (i + 1) + ": " + numbers.get(i));
}
scanner.close();
}
}注意事项与优化建议
- ✅ 输入校验增强:上述代码假设用户始终输入合法整数。实际项目中建议用 hasNextInt() 配合 nextLine() 避免 InputMismatchException;
- ✅ 字符串输入健壮性:使用 .trim() 清除首尾空格,防止 "yes " 被误判为不匹配;
- ✅ 资源管理:务必调用 scanner.close() 释放系统资源(尤其在长期运行程序中);
- ✅ 输出体验优化:示例中改用带序号的格式化输出,便于用户核对数据顺序。
该方案完全满足“不限定初始容量、按需动态扩展、交互式终止”的核心需求,是初学者掌握 ArrayList 与用户交互的典型实践范例。

















