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。接口

相关文章
相关标签/搜索