gpt4 book ai didi

java - Java中二维ArrayList的交集

转载 作者:行者123 更新时间:2023-11-30 07:10:33 26 4
gpt4 key购买 nike

我想在 ArrayList 中交集 list1list2list3。所以,我想对 arrayList2D 的 ArrayList 进行交集。 arrayList2D 最多可以包含六个 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;
}

这是我的代码

    ArrayList<ArrayList<Integer>> arrayList2D=new ArrayList<ArrayList<Integer>>();

ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(0);
list1.add(8);
list1.add(15);
list1.add(26);
list1.add(124);
ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(0);
list2.add(7);
list2.add(17);
list2.add(26);
list2.add(178);
ArrayList<Integer> list3 = new ArrayList<Integer>();
list3.add(4);
list3.add(8);
list3.add(12);
list3.add(26);
list3.add(128);

arrayList2D.add(list1);
arrayList2D.add(list2);
arrayList2D.add(list3);

最佳答案

好的,根据我的理解,您需要与 arrayList2D 下包含的所有数组列表相交。

public <T> List<T> intersection(List<T> list1, List<T> list2) {
list1.retainAll(list2);
return list1;
}

创建您需要调用的其他方法

public static List<Integer> getAllIntersection(ArrayList<ArrayList<Integer>> arrayList2D) {
List<Integer> finalList = arrayList2D.get(0);
for (int i=1; i<arrayList2D.size(); i++) {
finalList=intersection(finalList,arrayList2D.get(i));
}
System.out.println("firstList"+finalList);
return finalList;
}

然后最后调用getAllIntersection(arrayList2D)来获得想要的结果

关于java - Java中二维ArrayList的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com