You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:57:53