如何获取ArrayList中的索引数量?附待办列表Java代码示例
完善你的Java待办事项列表 & 获取ArrayList元素数量方案
嘿,我来帮你搞定这个问题!先指出你现有代码里的小细节问题,再给你一套完整的可运行方案,同时满足你获取ArrayList中元素数量(也就是你说的“索引数量”)的需求。
先修正Task类的小问题
你原来的Task类里有个拼写错误tascDesc(应该是taskDesc),而且把Scanner放在Task类里不太合理,会导致每次创建Task都生成新的Scanner实例,我们调整一下:
public class Task { private String taskDesc; // 修正拼写错误,用private封装更规范 public Task() {} // 改为传入任务描述的方式,Scanner交给外部统一管理 public void setTaskDesc(String taskDesc) { this.taskDesc = taskDesc; } // 增加获取任务描述的方法,方便外部读取 public String getTaskDesc() { return this.taskDesc; } }
重构任务列表类(原aList)
原aList类名不符合Java规范(类名首字母要大写),我们改成TaskList,同时实现添加任务、获取任务数量、展示任务的功能,其中获取ArrayList元素数量用size()方法就可以了:
import java.util.ArrayList; public class TaskList { private ArrayList<Task> taskList; // 存储Task对象,更符合面向对象设计 public TaskList() { taskList = new ArrayList<>(); } // 添加任务到列表 public void addTask(Task task) { taskList.add(task); System.out.println("任务已成功添加!"); } // 获取列表中的任务总数(就是你要的"索引数量",元素个数) public int getTaskCount() { return taskList.size(); // ArrayList的size()方法直接返回元素总数 } // 展示所有待办任务 public void showAllTasks() { if (taskList.isEmpty()) { System.out.println("当前没有任何待办任务哦!"); return; } System.out.println("\n===== 你的待办任务 ====="); for (int i = 0; i < taskList.size(); i++) { // 展示时用i+1作为序号,更符合用户的使用习惯(从1开始计数) System.out.printf("%d. %s%n", i + 1, taskList.get(i).getTaskDesc()); } } }
主程序入口类
最后写一个主类来运行整个待办事项管理器,处理用户的交互操作:
import java.util.Scanner; public class TodoApp { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); TaskList taskList = new TaskList(); boolean isRunning = true; while (isRunning) { System.out.println("\n===== 待办事项管理器 ====="); System.out.println("1. 添加新任务"); System.out.println("2. 查看所有任务"); System.out.println("3. 查看任务总数"); System.out.println("4. 退出程序"); System.out.print("请输入你的选择:"); int choice = scanner.nextInt(); scanner.nextLine(); // 处理输入整数后的换行符,避免后续nextLine()读取空内容 switch (choice) { case 1: System.out.print("请输入任务描述:"); String taskDesc = scanner.nextLine(); Task newTask = new Task(); newTask.setTaskDesc(taskDesc); taskList.addTask(newTask); break; case 2: taskList.showAllTasks(); break; case 3: System.out.printf("当前共有 %d 个待办任务%n", taskList.getTaskCount()); break; case 4: isRunning = false; System.out.println("程序已退出,再见!"); break; default: System.out.println("无效的输入,请重新选择!"); } } scanner.close(); } }
关键说明
- 获取ArrayList元素数量:直接调用
ArrayList.size()方法即可,返回的就是列表中元素的总数,对应的索引范围是0到size()-1 - 代码遵循Java规范,类名首字母大写,成员变量用private封装,提高代码的可读性和可维护性
- 将Scanner放在主类统一管理,避免重复创建资源
内容的提问来源于stack exchange,提问作者Angelbreath
相关产品推荐
相关产品推荐

