@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版权协议,转载请附上原文出处链接和本声明。