我有两个对象列表。我通过查询数据库来构造这个列表。比较Java中的两个对象列表以删除重复对象
对于防爆:
List<Employee> firstList={holDate,holName,createdby,empId}
List<Employee> seconList={holDate,holName,createdby,empId}
现在,我需要比较holDate
的firstList
holName
与holDate
的secondList
holName
。如果holDate
,holName
的firstList
没有在secondList
找到,我需要在单独的列表中添加。
该列表可以以任何顺序。
注意:empId是主键列。
更新 - 我已经试过:
for(Employee emp:firstList) {
for(Employee tgtEmp:seconList) {
if((emp.getHolDate()!=tgtEmp.getHolDate())&& (emp.getHolName()!=tgtEmp.getHolName())){
printList.add(emp); break;
}
}
}
样品清单值:
firstList = {{2015年8月15日, “独立日”, “E1”, “EMPL” },{2015-01-26,“Republic Day”,“e1”,“Empl”},{2015-09-20,“Memorial Day”,“e1”,“Empl”}}
seconList = {{ 2015-08-15,“独立日”,“e1”,“Emp2”},{2015-10-25,“感谢奉献日”,“e1”,“Emp2”}}
这里newlist具有所有的价值在seconList和“RepublicDay”,“亡兵纪念日”,可从firstList
什么是'Employee'?它是否有自定义的'equals'和'hashcode'方法,因此只需使用'List#removeAll'或'List#retainAll'来标识重复项就很容易了。当然,你可以把他们两个都变成某种'Set' ... – MadProgrammer
你在提问之前做过任何研究吗?看到很多问题,你可以在计算器 –
嗨Renjith得到的,请在下面找到片断
的(员工EMP:firstList){ \t \t \t \t \t \t \t \t的(员工tgtEmp:seconList){ \t \t \t \t \t \t \t \t \t \t如果((emp.getHolDate()!= tgtEmp.getHolDate())&& \t \t \t \t \t \t \t(emp.getHolName()!= tgtEmp.getHolName())){ \t \t \t \t \t \t的printList。添加(EMP); \t \t \t \t \t \t break; \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t \t \t} \t \t \t \t} – iShower