如何使用Java实现任务完成情况统计

兄弟姐妹们,我想请分析下,如何使用Java实现任务完成情况统计
最新回答
风铃鹿

2026-02-08 07:54:05

在Java中实现任务完成情况统计敏贺,核心步骤包括定义任务数据结构、使用集合存储任务、编写统计逻辑,并通过计算完成率输出结果陪拿旅。以下是分步实现方案:

1. 定义任务类(Task)

封装任务名称和完成状态,提供基础方法:

public class Task { private String name; private boolean completed; public Task(String name, boolean completed) { this.name = name; this.completed = completed; } public boolean isCompleted() { return completed; } // 可选:添加Getter/Setter方法 public String getName() { return name; } public void setCompleted(boolean completed) { this.completed = completed; }}2. 创建任务统计类(TaskStatistics)芦凳

使用集合存储任务,实现总数、完成数和完成率的计算:

import java.util.ArrayList;import java.util.List;public class TaskStatistics { private List<Task> tasks = new ArrayList<>(); // 添加任务 public void addTask(Task task) { tasks.add(task); } // 总任务数 public int getTotalCount() { return tasks.size(); } // 已完成任务数 public int getCompletedCount() { int count = 0; for (Task task : tasks) { if (task.isCompleted()) { count++; } } return count; } // 完成率(百分比) public double getCompletionRate() { if (tasks.isEmpty()) return 0.0; return (double) getCompletedCount() / getTotalCount() * 100; }}3. 示例调用与输出

创建任务并统计结果,格式化输出完成率:

public class Main { public static void main(String[] args) { TaskStatistics stats = new TaskStatistics(); // 添加任务 stats.addTask(new Task("编写文档", true)); stats.addTask(new Task("测试代码", false)); stats.addTask(new Task("修复bug", true)); // 输出结果 System.out.println("总任务数: " + stats.getTotalCount()); System.out.println("已完成任务: " + stats.getCompletedCount()); System.out.println("完成率: " + String.format("%.2f%%", stats.getCompletionRate())); }}

输出结果:

总任务数: 3已完成任务: 2完成率: 66.67%4. 扩展功能建议
  • 复杂统计:若需按分类、优先级统计,可在Task类中添加字段(如String category、int priority),并在统计类中使用Map分组:Map<String, Integer> countByCategory() { Map<String, Integer> result = new HashMap<>(); for (Task task : tasks) { result.merge(task.getCategory(), 1, Integer::sum); } return result;}
  • Stream API简化:使用Java 8的Stream简化统计:public long getCompletedCountStream() { return tasks.stream().filter(Task::isCompleted).count();}
  • 状态更新机制:确保任务状态变更时调用统计方法重新计算,或使用观察者模式监听状态变化。
5. 关键注意事项
  • 数据一致性:直接修改Task的completed字段后,需重新调用统计方法获取最新结果。
  • 空集合处理:在计算完成率时检查集合是否为空,避免除以零错误。
  • 性能优化:对于大规模任务,可考虑并行流(parallelStream())加速统计。

此方案适用于小型任务管理系统或本地工具开发,核心逻辑清晰且易于扩展。如需更复杂的功能(如持久化存储、多线程统计),可进一步集成数据库或并发集合。