有什么简单的办法来判断吗?有两个List<Set<Integer>> 怎么判断这两个的交集呢?

解决方案 »

  1.   

    List<Set<Integer>> ?????
      

  2.   

    set就不会有重复的元素
    list的话可以用retainAll()啊
      

  3.   

    两个List<Set>?
    是要求判断List的每个Set分别和另一个List的每个Set两两是否有交集吗?
    可以循环分别判断每个Set
    for exampleList<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);
            }
        }
    }