我有一个雇员数组列表。其中id和name不可更改,而hours contract和planned可以更改。
我已经解决了下面的前三个问题,但最后一个问题卡住了。除了下面的3类,我还有类工作区。
我有Class Employee。
public class Employee {
public int id;
public String name;
public int HoursWork;
public int HoursPlanned;
}
这延伸到类专家
public class Specialist extends Employee {
public Specialist(int id, String name){
this.id=id;
this.naam=naam;
this.UrenWerk=0;
this.UrenPlan=0;
}
public void InPlanning(int Planned){
HoursPlanned+=Planned;
Workspace.setTotalHoursPlanned(HoursPlanned);
}
public void Contract(int Available){
HoursWork+=Available;
Workspace.setTotalHoursAvailable(HoursWork);
}
}
在main
public class Main {
public static void main(String[] args) {
Specialist H = new Specialist(1,"H");
Specialist R = new Specialist(2,"R");
Specialist P = new Specialist(3,"P");
Specialist K = new Specialist(4,"K");
List<Specialist> LijstSpecialist = new ArrayList <>();
LijstSpecialist.add(H);
LijstSpecialist.add(R);
LijstSpecialist.add(P);
LijstSpecialist.add(K);
Workspace A = new Workspace (LijstSpecialist);
H.InPlanning(1700);
R.InPlanning(1400);
P.InPlanning(1880);
K.InPlanning(300);
H.Contract(1880);
R.Contract(1800);
P.Contract(1890);
K.Contract(1700);
System.out.println("available " + A.TotalHoursAvailable()+ " hours.");
System.out.println("Planned " + A.getTotalHoursPlanned()+ " hours.");
System.out.println("To be planned " + (A.TotalHoursAvailable() - A.getTotalHoursPlanned())+ " hours.");
System.out.println("Employees to be planned ");
在最后一个问题中,我希望打印的员工名单比合同规定的要少。
如果您需要的话,下面应该可以工作:
public class Main {
public static void main(String[] args) {
Specialist H = new Specialist(1,"H");
Specialist R = new Specialist(2,"R");
Specialist P = new Specialist(3,"P");
Specialist K = new Specialist(4,"K");
List<Specialist> LijstSpecialist = new ArrayList <>();
LijstSpecialist.add(H);
LijstSpecialist.add(R);
LijstSpecialist.add(P);
LijstSpecialist.add(K);
Workspace A = new Workspace (LijstSpecialist);
H.InPlanning(1700);
R.InPlanning(1400);
P.InPlanning(1880);
K.InPlanning(300);
H.Contract(1880);
R.Contract(1800);
P.Contract(1890);
K.Contract(1700);
List<String> specialistsToBePlanned = LijstSpecialist.stream().filter((specialist -> specialist.HoursPlanned < specialist.HoursWork))
.map(Specialist::getName)
.collect(Collectors.toList());
System.out.println("available " + A.TotalHoursAvailable()+ " hours.");
System.out.println("Planned " + A.getTotalHoursPlanned()+ " hours.");
System.out.println("To be planned " + (A.TotalHoursAvailable() - A.getTotalHoursPlanned())+ " hours.");
System.out.println("Employees to be planned " + specialistsToBePlanned);
}
}