我有一个对象SalesType
,其中包含字段SalesTypeId
和SalesTypeCode
。
我有两个列表list1和list2。
List1={(1,10),(2,20),(3,30)}
List2={(1,40),(2,50),(3,20)
我正在尝试比较列表中的SalesTypeCode
代码,如果它相同则必须退出循环并且返回列表具有相同的字段。
以下是我所做的,但它没有回复我所期待的。
我做错了什么?
List<SalesType> list1 =service.getAllSalesTypeCodes(form.getReqSalesTypeGroup());
List<SalesType> list2 = service.getAllSalesTypeCodes(form.getSorSalesTypeGroup());
if (list1 != null || list2 != null) {
mainLoop:
for (int i = 0; i < list2.size(); i++) {
System.out.println("list2 " + list2.get(i).getSalesTypeCode());
for (int j = 0; j < list1.size(); j++) {
System.out.println("list1 " + list1.get(j).getSalesTypeCode());
if ((list2.get(i).getSalesTypeCode()).equals((list1.get(j).getSalesTypeCode()))) {
System.out.println("equals..:" + (list2.get(i).getSalesTypeCode()).equals((list1.get(j).getSalesTypeCode())));
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(ActionErrorConstants.MESSAGE_EXISTS_SALES_TYPE));
System.out.println("breaking the loop");
break mainLoop;
}
}
}
}
答案 0 :(得分:1)
在 SalesType 类(包括HashCode)中正确覆盖等于,然后使用
列出#retainAll(...)方法
或