Java 实现每日工作汇报系统:实时跟踪未汇报人员
以下是一个简单的 Java 实现,使用了 HashMap 和 ArrayList 来存储用户和他们的汇报状态:
import java.util.ArrayList;
import java.util.HashMap;
public class WorkReportSystem {
private HashMap<String, Boolean> reportStatus; // 记录每个人的汇报状态,true 表示已汇报,false 表示未汇报
private ArrayList<String> unreportedUsers; // 记录未汇报的用户
public WorkReportSystem(ArrayList<String> users) {
reportStatus = new HashMap<>();
unreportedUsers = new ArrayList<>(users);
for (String user : users) {
reportStatus.put(user, false); // 初始化为未汇报状态
}
}
public void submitReport(String user) {
if (reportStatus.containsKey(user)) { // 检查用户是否存在
reportStatus.put(user, true); // 更新汇报状态
unreportedUsers.remove(user); // 从未汇报列表中移除
}
}
public ArrayList<String> getUnreportedUsers() {
return unreportedUsers;
}
}
使用示例:
ArrayList<String> users = new ArrayList<>();
users.add('Alice');
users.add('Bob');
users.add('Charlie');
WorkReportSystem system = new WorkReportSystem(users);
system.submitReport('Alice');
system.submitReport('Charlie');
System.out.println(system.getUnreportedUsers()); // 输出 [Bob]
注意:以上实现只考虑了单线程环境下的使用,如果需要在多线程环境下使用,需要使用线程安全的数据结构或者加锁来保证并发安全。
原文地址: https://www.cveoy.top/t/topic/nyDo 著作权归作者所有。请勿转载和采集!