答dingdeyang
private static ConcurrentHashMap<Integer, Boolean> task = new ConcurrentHashMap<>();
static {
for (int i = 1; i < 101; i++) {
task.put(i, false);
}
}
public static void main(String[] args) {
//检查id是否存在
Predicate<Integer> notExist = taskId -> taskId < 1 || taskId > 100;
//标记任务已完成
Function<Integer, Integer> markCompleted = taskId -> {
if (notExist.test(taskId)) {
return -1;
}
//检查该任务是否已经完成,避免重复学习
task.replace(taskId, false, true);
return 1;
};
//检查任务是否完成
Function<Integer, Integer> checkStatus = taskId -> {
if (notExist.test(taskId)) {
return -1;
}
return task.get(taskId) ? 1 : 0;
};
//标记任务已完成
System.out.println(markCompleted.apply(6));
//检查任务是否完成
System.out.println(checkStatus.apply(7));
System.out.println(checkStatus.apply(6));
}