以下是一种可能的实现方式:

首先,需要一个数据结构来存储每个人的状态。可以使用一个 Map,将每个人的姓名映射为一个布尔值,表示是否已经汇报:

Map<String, Boolean> reportStatus = new HashMap<>();

在程序启动时,需要将所有人的状态初始化为未汇报:

for (String name : allNames) {
    reportStatus.put(name, false);
}

其中,allNames 是一个字符串数组,包含所有需要汇报工作的人的姓名。

每次有人提交工作汇报时,可以调用一个函数来更新该人的状态:

public void reportWork(String name) {
    reportStatus.put(name, true);
}

在获取未汇报列表时,可以遍历所有的姓名,检查其状态是否为未汇报,将未汇报的姓名加入到一个列表中:

public List<String> getUnreportedNames() {
    List<String> unreportedNames = new ArrayList<>();
    for (String name : allNames) {
        if (!reportStatus.get(name)) {
            unreportedNames.add(name);
        }
    }
    return unreportedNames;
}

这个函数返回一个字符串列表,包含所有未汇报工作的人的姓名。

需要注意的是,由于状态可能会在多个线程中被修改,需要使用线程安全的 Map 实现,例如 ConcurrentHashMap。同时,在更新状态和获取未汇报列表时,需要使用同步机制来保证线程安全。

Java 实现实时更新工作汇报状态的系统

原文地址: https://www.cveoy.top/t/topic/nyFi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录