取多个集合交集(取多个集合的公共元素)

  @Test
    public void tets() {
        Set<String> s1 = new HashSet<>();
        Set<String> s2 = new HashSet<>();
        Set<String> s3 = new HashSet<>();

        s1.add("p1");
        s1.add("p2");

        s2.add("p1");
        s2.add("p3");

        s3.add("p1");
        s3.add("p2");
        s3.add("p3");

        List<Set<String>> sets = new ArrayList<>();
        sets.add(s1);
        sets.add(s2);
        sets.add(s3);

        Set<String> common = sets.get(0);
        for (int i = 1; i < sets.size(); i++) {
            common.retainAll(sets.get(i));
        }

        System.out.println(common);
    }


从注释中可见:set.retainAll(c)只修改set,而不修改c


版权声明:本文为csdn17355456893原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。