2 つの配列リストがあります。それぞれに従業員タイプのオブジェクトのリストがあります。
Employee クラスは以下のようになります
public class Employee {
private int id; // this is the primary key from employee table
private String firstname;
private String lastname;
private String employeeId; // manually assigned unique id to each employee
private float fte;
Employee(String firstname, String lastname, String employeeId, float fte) {
this.firstname = firstname;
this.lastname = lastname;
this.employeeId = employeeId;
this.fte = fte;
}
// getters and setters
}
従業員 ID は、各従業員に与えられる手動で生成された一意の ID です。
異なる従業員を持つ従業員 ID に基づいて、2 つのリスト間で共通の従業員を見つける必要があります。
import java.util.ArrayList;
import java.util.List;
public class FindFTEDifferencesBetweenMatchingEmployeeIds {
public static void main(String args[]) {
List<Employee> list1 = new ArrayList<Employee>();
List<Employee> list2 = new ArrayList<Employee>();
list1.add(new Employee("F1", "L1", "EMP01", 1));
list1.add(new Employee("F2", "L2", "EMP02", 1));
list1.add(new Employee("F3", "L3", "EMP03", 1));
list1.add(new Employee("F4", "L4", "EMP04", 1));
list1.add(new Employee("F5", "L5", "EMP05", 1));
list1.add(new Employee("F9", "L9", "EMP09", 0.7F));
list2.add(new Employee("F1", "L1", "EMP01", 0.8F));
list2.add(new Employee("F2", "L2", "EMP02", 1));
list2.add(new Employee("F6", "L6", "EMP06", 1));
list2.add(new Employee("F7", "L7", "EMP07", 1));
list2.add(new Employee("F8", "L8", "EMP08", 1));
list2.add(new Employee("F9", "L9", "EMP09", 1));
List<FTEDifferences> commonInBothListWithDifferentFTE = new ArrayList<FTEDifferences>();
// this should contain EMP01 and EMP09
// since EMP02 has same FTE in both lists, it is ignored.
}
}
従業員 ID EMP01 と EMP09 を持つ従業員は、両方のリストで共通しており、リストごとに異なる勤務先も持っています。
したがって、この 2 人の従業員を含む別のリストが必要です。
public class FTEDifferences {
private Employee fromList1;
private Employee fromList2;
public Employee getFromList1() {
return fromList1;
}
public void setFromList1(Employee fromList1) {
this.fromList1 = fromList1;
}
public Employee getFromList2() {
return fromList2;
}
public void setFromList2(Employee fromList2) {
this.fromList2 = fromList2;
}
}
助けてください。
PS。SQL でこれを行うのは簡単ですが、クエリを変更できないため、SQL クエリでは実行できません。指定された 2 つのリストを操作するだけで済みます。:(