java 中的 Set集合

一、Set:注重獨一無二的性質,該體系集合能夠知道某物是否已存在於集合中,不會存儲重複的元素算法

  • 用於存儲無序(存入和取出的順序不必定相同)元素,值不能重複。
---| Itreable      接口 實現該接口能夠使用加強for循環  
     ---| Collection     描述全部集合共性的接口  
         ---| List接口     能夠有重複元素的集合  
            ---| ArrayList     
            ---|  LinkedList  
         ---| Set接口      不能夠有重複元素的集合  
            ---| HashSet  線程不安全,存取速度快。底層是以哈希表實現的。 
            ---| TreeSet  紅-黑樹的數據結構,默認對元素進行天然排序(String)。若是在比較的時候兩個對象返回值

二、HashSet安全

  • HashSet不存入重複元素的規則.使用hashcode和equals

三、TreeSet數據結構

  • 紅黑樹算法的規則: 左小右大

元素自身具有比較性函數

  • 實現Comparable接口,重寫compareTo方法
  • 這種方式叫作元素的天然排序也叫作默認排序

容器具有比較性線程

  • 當元素自身不具有比較性,或者元素具有的比較性不是所須要的
  • 容器自身具有。須要定義一個類實現接口Comparator,重寫compare方法
  • 當Comparable比較方式和Comparator比較方式同時存在時,以Comparator的比較方式爲主
  • 在重寫compareTo或者compare方法時,必需要明確比較的主要條件相等時要比較次要條件
  • 上述條件指,在比較方法中,可對多個域進行比較
  • 存入TreeSet集合中的元素要具有比較性
  • 當compareTo()函數返回值爲0時,說明兩個對象相等
  • 比較器接口:
----| Comparable  
            compareTo(Object o)     元素自身具有比較性  
----| Comparator  
            compare( Object o1, Object o2 ) 給容器傳入比較器

四、LinkedHashSetcode

  • 會保存插入的順序
  • 看到array,就要想到角標。xml

  • 看到link,就要想到first,last。對象

  • 看到hash,就要想到hashCode,equals.排序

  • 看到tree,就要想到兩個接口。Comparable,Comparator。接口

相關文章
相關標籤/搜索