[英]Union and Intersection for List of Objects in Java
對象1列表
public class ActiveType {
protected String serviceCategoryCode;
protected String serviceOcc;
protected String serviceCode;
protected String to;
protected String free;
}
對象2清單
public class PendingType {
protected String worNumber;
protected String serviceCode;
protected String serviceOcc;
protected String from;
protected String to;
}
有兩個對象列表。
1. List<ActiveType>
2. List<PendingType>
如果兩個列表的服務代碼匹配,我必須創建一個新列表。 還有另一個列表,其中同時包含剩余對象(ActiveTpe + PendingType)。
如何在Java中實現對象列表的並集和交集?
使用contains(Object o)。 遍歷列表,如果當前對象包含在第二個列表中,則將其保存在稱為交集列表的第三個列表中。 完成交集后,可以通過使用remove(Object o)從交集列表中的兩個初始列表中刪除所有對象來進行並集。 然后,只需使用交集列表的元素以及初始列表的左側創建一個新列表,即可獲得並集。 另外,如果以后仍需要初始列表,則可能要保存初始列表。
應用包含到列表的當前元素。 如果您有list1,list 2和一個新的空list3,則:
for (Object x:list1)
if (list2.contains(x))
list3.add(x);
一旦for循環完成,list3將具有從list1和list2的交集獲得的所有元素。
如果ActiveType
和PendingType
可以通過以下共享屬性共享超類:
public class SuperType {
protected String serviceCode;
protected String serviceOcc;
}
然后創建並填充Set<? extends SuperType>
Set<? extends SuperType>
將產生交集。 當然, SuperType
的equals()
必須基於serviceCode
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.