Как сравнить два списка массивов для похожих объектов, которые отличаются хотя бы одним свойством в Java?

У меня есть два списка массивов. У каждого есть список Объектов типа Пользователь.

Класс User выглядит следующим образом

    public class User {

    private long id;

    private String empCode;

    private String firstname;

    private String lastname;

    private String email;

    public User( String firstname, String lastname, String empCode, String email) {
        super();
        this.empCode = empCode;
        this.firstname = firstname;
        this.lastname = lastname;
        this.email = email;
    }

    // getters and setters

}


    import java.util.ArrayList;
import java.util.List;

public class FindSimilarUsersWithAtLeastOneDifferentProperty {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        List list1 = new ArrayList();

        list1.add(new User("F11", "L1", "EMP01", "[email protected]"));
        list1.add(new User("F2", "L2", "EMP02", "[email protected]"));
        list1.add(new User("F3", "L3", "EMP03", "[email protected]"));
        list1.add(new User("F4", "L4", "EMP04", "[email protected]"));
        list1.add(new User("F5", "L5", "EMP05", "[email protected]"));
        list1.add(new User("F9", "L9", "EMP09", "[email protected]"));
        list1.add(new User("F10", "L10", "EMP10", "[email protected]"));

        List list2 = new ArrayList();

        list2.add(new User("F1", "L1", "EMP01", "[email protected]"));
        list2.add(new User("F2", "L2", "EMP02", "[email protected]"));
        list2.add(new User("F6", "L6", "EMP06", "[email protected]"));
        list2.add(new User("F7", "L7", "EMP07", "[email protected]"));
        list2.add(new User("F8", "L8", "EMP08", "[email protected]"));
        list2.add(new User("F9", "L9", "EMP09", "[email protected]"));
        list2.add(new User("F100", "L100", "EMP10", "[email protected]"));

        List resultList = new ArrayList();
        // this list should contain following users
        // EMP01 (common in both list but differs in firstname)
        // EMP02 (common in both list but differs in email)
        // EMP10 (common in both list but differs in firstname, lastname and email)


    }

}

Если вы видите пример кода, у двух списков есть четыре пользователя с общими кодами emp EMP01, EMP02, EMP09 и EMP10.

Итак, нам нужно только сравнить свойства этих четырех пользователей.

Если у какого-либо из пользователей есть хотя бы одно другое свойство, его следует добавить в список результатов.

Посоветуйте, пожалуйста, как мне это сделать?

Ответы на вопрос(6)

Ваш ответ на вопрос