I have two array list. Each has list of Objects of type User.
The User class looks like below
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<User> list1 = new ArrayList<User>();
list1.add(new User("F11", "L1", "EMP01", "u1@test.com"));
list1.add(new User("F2", "L2", "EMP02", "u222@test.com"));
list1.add(new User("F3", "L3", "EMP03", "u3@test.com"));
list1.add(new User("F4", "L4", "EMP04", "u4@test.com"));
list1.add(new User("F5", "L5", "EMP05", "u5@test.com"));
list1.add(new User("F9", "L9", "EMP09", "u9@test.com"));
list1.add(new User("F10", "L10", "EMP10", "u10@test.com"));
List<User> list2 = new ArrayList<User>();
list2.add(new User("F1", "L1", "EMP01", "u1@test.com"));
list2.add(new User("F2", "L2", "EMP02", "u2@test.com"));
list2.add(new User("F6", "L6", "EMP06", "u6@test.com"));
list2.add(new User("F7", "L7", "EMP07", "u7@test.com"));
list2.add(new User("F8", "L8", "EMP08", "u8@test.com"));
list2.add(new User("F9", "L9", "EMP09", "u9@test.com"));
list2.add(new User("F100", "L100", "EMP10", "u100@test.com"));
List<User> resultList = new ArrayList<User>();
// 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)
}
}
If you see the sample code, the two lists have four users with emp code EMP01, EMP02, EMP09 and EMP10 common.
So, we only need to compare the properties of these four users.
If any of the users have at least one different property it should be added in the result list.
Please advise on how do I go about this?