我有兩個列表。以優化方式合併兩個列表
List<Customer> customers1 = getCustomerDetails1();
List<Customer> customers2 = getCustomerDetails2();
public class Customer {
private String firstName;
private String lastName;
private String gender;
private String birthDate;
private String formatedDob;
private String mobileNumber;
private String oldMobileNumber;
private String emailId;
private String add1;
private String add2;
private String add3;
private String pincode;
private String city;
private String cityId;
----
getter, setter
我現在都合併列表數據如下:
List<Customer> customerVoList = new ArrayList<>();
for (Customer localCustomerVO : customers1) {
for (Customer customerHubVO : customers2) {
localCustomerVO = fillCustomerDetails(localCustomerVO, customerHubVO);
customerVoList.add(localCustomerVO);
}
}
private Customer fillCustomerDetails(Customer localCustomerVO, Customer customerHuvVO) {
localCustomerVO.setFirstName(StringUtils.isEmpty(customerHuvVO.getFirstName()) ? localCustomerVO.getFirstName() : customerHuvVO.getFirstName());
localCustomerVO.setLastName(StringUtils.isEmpty(customerHuvVO.getLastName()) ? localCustomerVO.getLastName() : customerHuvVO.getLastName());
localCustomerVO.setEmailId(StringUtils.isEmpty(customerHuvVO.getEmailId()) ? localCustomerVO.getEmailId() : customerHuvVO.getEmailId());
localCustomerVO.setBirthDate(StringUtils.isEmpty(customerHuvVO.getBirthDate()) ? localCustomerVO.getBirthDate() : customerHuvVO.getBirthDate());
localCustomerVO.setFormatedDob(customerHuvVO.getBirthDate() != null ? DateUtils.getDateddMMYYYY(customerHuvVO.getBirthDate()) : (localCustomerVO.getBirthDate() != null ? DateUtils.getDateddMMYYYY(localCustomerVO.getBirthDate()) : ""));
localCustomerVO.setAdd1(StringUtils.isEmpty(customerHuvVO.getAdd1()) ? localCustomerVO.getAdd1() : customerHuvVO.getAdd1());
localCustomerVO.setAdd2(StringUtils.isEmpty(customerHuvVO.getAdd2()) ? localCustomerVO.getAdd2() : customerHuvVO.getAdd2());
localCustomerVO.setAdd3(StringUtils.isEmpty(customerHuvVO.getAdd3()) ? localCustomerVO.getAdd3() : customerHuvVO.getAdd3());
localCustomerVO.setCity(StringUtils.isEmpty(customerHuvVO.getCity()) ? localCustomerVO.getCity() : customerHuvVO.getCity());
localCustomerVO.setState(StringUtils.isEmpty(customerHuvVO.getState()) ? localCustomerVO.getState() : customerHuvVO.getState());
localCustomerVO.setPincode(StringUtils.isEmpty(customerHuvVO.getPincode()) ? localCustomerVO.getPincode() : customerHuvVO.getPincode());
return localCustomerVO;
}
上面的代碼工作正常。但我正在尋找其他最好的方法。
這看起來不對。您不應該將第一個列表中的一個客戶與第二個列表中的一個相應客戶合併嗎? – Eran
什麼是'CustomerVO'? –
@Eran這只是一個非常簡單的方法來增加您的收入。你之前有'N'客戶,現在你有'N^2'客戶:D –