不同类型的List找交集,该怎么解决
1个回答
展开全部
是要求判断List的每个Set分别和另一个List的每个Set两两是否有交集吗?
可以循环分别判断每个Set
for example
List<Set<Integer>> l1 = new ArrayList<Set<Integer>>();
Set<Integer> s1 = new HashSet<Integer>(Arrays.asList(new Integer[]{1,2}));
Set<Integer> s2 = new HashSet<Integer>(Arrays.asList(new Integer[]{3,4}));
l1.add(s1);
l1.add(s2);
List<Set<Integer>> l2 = new ArrayList<Set<Integer>>();
Set<Integer> s3 = new HashSet<Integer>(Arrays.asList(new Integer[]{1,3}));
Set<Integer> s4 = new HashSet<Integer>(Arrays.asList(new Integer[]{2,4}));
l2.add(s3);
l2.add(s4);
for (Set<Integer> ls1 : l1) {
for (Set<Integer> ls2 : l2) {
Set<Integer> ts = new HashSet<Integer>(ls1);
ts.retainAll(ls2);
if (ts.size() > 0) {
System.out.println("has same element:");
System.out.println(ts);
}
}
}
可以循环分别判断每个Set
for example
List<Set<Integer>> l1 = new ArrayList<Set<Integer>>();
Set<Integer> s1 = new HashSet<Integer>(Arrays.asList(new Integer[]{1,2}));
Set<Integer> s2 = new HashSet<Integer>(Arrays.asList(new Integer[]{3,4}));
l1.add(s1);
l1.add(s2);
List<Set<Integer>> l2 = new ArrayList<Set<Integer>>();
Set<Integer> s3 = new HashSet<Integer>(Arrays.asList(new Integer[]{1,3}));
Set<Integer> s4 = new HashSet<Integer>(Arrays.asList(new Integer[]{2,4}));
l2.add(s3);
l2.add(s4);
for (Set<Integer> ls1 : l1) {
for (Set<Integer> ls2 : l2) {
Set<Integer> ts = new HashSet<Integer>(ls1);
ts.retainAll(ls2);
if (ts.size() > 0) {
System.out.println("has same element:");
System.out.println(ts);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询