使用場景
//Set的原因是Set集合不包含重復元素 1. HashSet能快速訪問的Set 2. TreeSet能排序(數字按從小到大) 3. LinedHashSet記錄下插入時的順序
用法
1. HashSet是采用hash表算法來實現的,其中的元素沒有按順序排列,主要有add()、remove()以及contains()等方法 2. TreeSet是采用樹結構實現(稱為紅黑樹算法),元素是按順序進行排列,主要有add()、remove()以及contains()等方法, 2.1 它們都是復雜度為O(log (n))的方法; 2.2 它還提供了一些處理排序的set方法,如first(), last(), headSet(), tailSet()等。 3. LinkedHashSet正好介於HashSet和TreeSet之間,它也是一個hash表,但它同時維護了一個雙鏈表來記錄插入的順序 3.1 基本方法的復雜度為O(1)
注意事項
1. 對於數值入參接收,如果要按照傳入的順序接收需要使用,LinkedHashSet<Integer>;使用TreeSet會按照從小打到排序,使用Set或HashSet則順序不一定;
2. Set中API要比List少一些,其中比如獲取/刪除集合中首元素,末尾元素,指定位置元素,可以new ArrayList<>(tempSet),把Set中元素放入list操作;