我正在尝试获取JAVA中两个列表之间的交集,请找到下面的列表
列表 1:
List<EligViewEventSubject> list1= new ArrayList<>();
list1= [EligViewEventSubject [event=EOD, subjectTypeCd=HOLDINGS, region=IA], EligViewEventSubject [event=EOD, subjectTypeCd=ASSETS, region=IA]]
列表 2:
List<EligViewEventSubject> list2= new ArrayList<>();
list2 = [EligViewEventSubject [event=EOD, subjectTypeCd=ASSETS, region=IA]]
上述结果应如下所示
List<EligViewEventSubject> resultList = new ArrayList<>();
resultList = [EligViewEventSubject [event=EOD, subjectTypeCd=ASSETS, region=IA]]
简而言之,我想要单独的匹配项(交叉点)
我尝试过以下方法:
List<EligViewEventSubject> unionList = new ArrayList<>(list1);
unionList.addAll(list2);
List<EligViewEventSubject> intersectionList = new ArrayList<>(list1);
intersectionList.retainAll(list2);
我得到的联盟列表为:
[EligViewEventSubject [event=EOD, subjectTypeCd=HOLDINGS, region=IA], EligViewEventSubject [event=EOD, subjectTypeCd=ASSETS, region=IA], EligViewEventSubject [event=EOD, subjectTypeCd=ASSETS, region=IA]]
交集是[]
请分享您对此的想法。
最佳答案
请引用此问题,因为该问题已经得到解答。 Intersection and union of ArrayLists in Java
总而言之,您可以在 java 中获取两个数组列表的交集,如下所示:
public <T> List<T> intersection(List<T> list1, List<T> list2) {
List<T> list = new ArrayList<T>();
for (T t : list1){
if(list2.contains(t)){
list.add(t);
}
}
return list;
}
关于java - JAVA中两个列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60251118/