我正在尝试获取JAVA中两个列表之间的交集,请在下面找到列表
清单1:列表list1 = new ArrayList <>();
list1 = [EligViewEventSubject [event = EOD,subjectTypeCd = HOLDINGS,区域= IA],EligViewEventSubject [event = EOD,subjectTypeCd = ASSETS,区域= IA]]
清单2:列表list2 = new ArrayList <>();
list2 = [EligViewEventSubject [事件= EOD,subjectTypeCd =资产,区域= IA]]
以上结果应与下面类似
List resultList = new ArrayList <>();
resultList = [EligViewEventSubject [event = EOD,subjectTypeCd = ASSETS,region = IA]]
总之我只想匹配的对象(交叉点)
我在下面尝试过,
List unionList = new ArrayList <>(list1);unionList.addAll(list2);
列表交集列表=新的ArrayList <>(list1);junctionList.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中获得两个arraylist的交集:
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;
}