理解這個方法、小白也是耗盡所有資源、總結下來的幾句話:
先上代碼:(附另外圖)
1 main(){ 2 Set<Integer> set = new HashSet(); 3 Set<Integer> set2 = new HashSet(); 4 set.add(1); 5 set.add(2); 6 set.add(3); 7 System.out.println(set);//運行結果:[1,2,3] 8 set2.add(3); 9 set2.add(4); 10 set2.add(5); 11 set2.add(6); 12 System.out.println(set2);//運行結果: [3,4,5,6] 13 14 set.addAll(set2); 15 System.out.println(set);//運行結果:[1,2,3,4,5,6] 16 }
當然、這一塊涉及的知識很廣泛、在這里小白只是簡單表述 addAll(Collection<? extends E> c) 方法;
回歸正題:
這個方法、如圖的結果。很好理解,將一個泛型集合添加到另外一個泛型集合當中去、那么當這個目標集合【即:被添加的集合】的元素和添加的集合內的元素發生重復、則不將重復的這個元素添加到目標集合中;
再比如、將A添加到B集合中、A中的元素有[1,2,3]、B中有[3,4,5,6];此時A集合的所有元素想要添加到B集合中、首先看兩個集合的泛化類型是否一致、不一致將會在set.addAll(set2);處編譯報錯!如果泛化類型一致、則考慮兩個集合中是否有重復的元素、如果沒有重復的元素那么A中的所有元素都會添加到B集合中、存在重復元素、則只保留目標集合的重復元素!相當於數學的交並集那塊知識、