Java中多個集合的交集,並集和差集
阿新 • • 發佈:2019-02-13
一、交集
java中交集使用 A.retainAll(B) ,交集的結果在集合A中。
public class Intersection { @Test public void testSet() { Set<String> set1 = new HashSet<>(); Set<String> set2 = new HashSet<>(); set1.add("a"); set1.add("b"); set1.add("c"); set2.add("c"); set2.add("d"); set2.add("e"); //交集 set1.retainAll(set2); System.out.println("交集是 " + set1); //交集是 [c] } }
二、並集
並集使用addAll,A.addAll(B) 因為set本身就去重,所有直接全部新增到一個集合中取並集。
public class UnionSet { @Test public void testUnionSet() { Set<String> set1 = new HashSet<>(); Set<String> set2 = new HashSet<>(); set1.add("a"); set1.add("b"); set1.add("c"); set2.add("b"); set2.add("c"); set2.add("d"); set1.addAll(set2); System.out.println("並集是" + set1); //並集是[a, b, c, d] } }
三、差集
差集使用removeAll方法,去掉一集合中包含的另一個集合的值。A.removeAll(B)。
public class DifferenceSet { @Test public void testDifferenceSet() { Set<String> set1 = new HashSet<>(); Set<String> set2 = new HashSet<>(); set1.add("a"); set1.add("b"); set1.add("c"); set1.add("d"); set2.add("c"); set2.add("d"); set2.add("e"); set2.add("f"); set1.removeAll(set2); System.out.println("差集是 " + set1); //差集是 [a, b] } }
需要注意的一點:
資料時物件時,需要重新物件的equals()和hashCode()方法
來源於: