2016-11-14 39 views
-1

我有一个对象SalesType,其中的字段为SalesTypeIdSalesTypeCode如果至少有一个条目相同,比较两个列表并返回错误

我有两个列表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

它返回什么?你在期待什么? – Blorgbeard

+0

如果salesTypecode匹配列表中,则循环必须终止并返回消息,如列表具有一个或多个相同的saleTypeCode。 – anudeep

回答

1

覆盖在SalesType类(包括hashCode)的同时适当等于然后用

  • 列表#中的retainAll(...)方法

  • 列表#.removeAll(...)方法
相关问题