2016-11-14 37 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(...)方法
相關問題