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

Java中如何对比同一ArrayList内员工的合同工时与计划工时

实现步骤

1. 先修正Specialist类的编译错误

你现有Specialist构造函数里的变量名存在拼写错误,先修正才能正常运行:

public Specialist(int id, String name){
    this.id = id;
    this.name = name; // 原代码的naam拼写错误,修正为父类定义的name
    this.HoursWork = 0; // 原代码UrenWerk修正为父类定义的HoursWork
    this.HoursPlanned = 0; // 原代码UrenPlan修正为父类定义的HoursPlanned
}

2. 新增打印逻辑

在Main类main方法的末尾,System.out.println("Employees to be planned ");代码后新增遍历判断逻辑即可,两种写法任选:

写法1:for-each循环(易读性高)

// 遍历所有员工,判断计划工时是否低于合同工时
for (Specialist specialist : LijstSpecialist) {
    if (specialist.HoursPlanned < specialist.HoursWork) {
        System.out.println(specialist.name);
    }
}

写法2:Stream流(Java 8+支持,写法简洁)

LijstSpecialist.stream()
        .filter(s -> s.HoursPlanned < s.HoursWork)
        .forEach(s -> System.out.println(s.name));

运行效果

按照你给出的测试数据,最终会输出H、R、P、K四个员工姓名,全部符合「计划工时低于合同工时」的筛选条件。

内容的提问来源于stack exchange,提问作者Cynthia de Rooy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:45:00