Set介面_HashSet常用方法_JDK原始碼解讀
阿新 • • 發佈:2018-11-02
Set 介面繼承自 Collection ,Set 沒有新增方法,方法和 Collection 保持一致,
Set 容器的特點:無序,不可重複,無序指Set 中的元素沒有索引,我們只能遍歷查詢,不重複指不允許加入重複的元素,更確切的說,新元素如果和Set 中某個元素通過 equals() 方法對比為 true,則不能加入,甚至,Set 中只能放一個 null 元素,不能多個。
Set 常用的實現類:HashSet, TreeSet 等,一般常用 HashSet
HashSet 的原始碼:底層是一個 HashMap, Set 裡面新增的所有元素都作為 HashMap 中的 key, value 統一都為Object, 這就是為什麼Set 中元素不能重複的原因(HashMap 中 key 不能重複)
package com.jianshun; import java.util.HashSet; import java.util.Set; /** *測試HashSet的基本方法 *Set:沒有順序,不可重複 *List: 有順序,可以重複 * @author Administrator * */ public class TestHashSet { public static void main(String[] args) { Set<String> set1 = new HashSet<String>(); set1.add("aa"); set1.add("bb"); set1.add("aa"); System.out.println(set1); set1.remove("bb"); System.out.println(set1); Set<String> set2 = new HashSet<String>(); set2.add("高琪"); set2.addAll(set1); System.out.println(set2); } }
// [aa, bb]
// [aa]
// [aa, 高琪]