如何比较 java 中同一数组列表中的 2 个设置值
how to compare 2 set values in the same arraylist in java
我有一个员工列表。其中id和name是不可更改的,而合同和计划的时间是可以更改的。
我已经解决了下面所述的前 3 个问题,但在最后一个问题上卡住了。
除了下面的 3 Classe,我还有 Class 工作区。
我有 Class 员工。
public class Employee {
public int id;
public String name;
public int HoursWork;
public int HoursPlanned;
}
这扩展到 Class 专家
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);
}
}
主要是
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);
}
}
我有一个员工列表。其中id和name是不可更改的,而合同和计划的时间是可以更改的。
我已经解决了下面所述的前 3 个问题,但在最后一个问题上卡住了。 除了下面的 3 Classe,我还有 Class 工作区。
我有 Class 员工。
public class Employee {
public int id;
public String name;
public int HoursWork;
public int HoursPlanned;
}
这扩展到 Class 专家
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);
}
}
主要是
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);
}
}