Mam dwie listy tablic. Każdy ma listę obiektów typu Pracownik.Jak znaleźć różnice między dwiema listami szyku na podstawie właściwości?
klasa Pracownik wygląda poniżej
public class Employee {
Employee(String firstname, String lastname, String employeeId) {
this.firstname = firstname;
this.lastname = lastname;
this.employeeId = employeeId;
}
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
// getters and setters
}
muszę znaleźć różnice między tymi dwoma listami w oparciu o właściwości obiektu pracownika, który jest identyfikator pracownika.
Identyfikator pracownika to wygenerowany ręcznie niepowtarzalny identyfikator nadany każdemu pracownikowi.
import java.util.ArrayList;
import java.util.List;
public class FindDifferences {
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"));
list1.add(new Employee("F2", "L2", "EMP02"));
list1.add(new Employee("F3", "L3", "EMP03"));
list1.add(new Employee("F4", "L4", "EMP04"));
list1.add(new Employee("F5", "L5", "EMP05"));
list2.add(new Employee("F1", "L1", "EMP01"));
list2.add(new Employee("F2", "L2", "EMP02"));
list2.add(new Employee("F6", "L6", "EMP06"));
list2.add(new Employee("F7", "L7", "EMP07"));
list2.add(new Employee("F8", "L8", "EMP08"));
List<Employee> notPresentInList1 = new ArrayList<Employee>();
// this list should contain EMP06, EMP07 and EMP08
List<Employee> notPresentInList2= new ArrayList<Employee>();
// this list should contain EMP03, EMP04 and EMP05
}
}
Co się stanie, jeśli obiekty nie są spójne? Na przykład, jeśli lista1 zawiera ("F1", "L1", "EMPO1"), a lista2 zawiera ("F11", "L11", "EMP01"). Czy zostanie zwrócone, jak nie na drugiej liście, mimo że klucz jest taki sam? –
@Disco 3. Szukamy tylko innego identyfikatora pracownika. W twoim przypadku będą one postrzegane jako takie same. – ashishjmeshram
Twoja klasa pracowników będzie musiała zaimplementować Porównywalne –