javaSE之集合


Set

无序的不可重复

遍历方式:

  1. 增强for循环

  2. iterator迭代器

 

TreeSet

  1. 底层:是由TreeMap维护,结构是红黑树

  2. 特点:查询效率高,自动升序

  3. 新增:比较大小方法

  4. 遍历方式:

    1. 增强for

    2. iterator迭代器

注意:TreeSet需要存储相同类型,因为默认存在比较排序

TreeSet存储javabean类型数据

  1. 去重与排序:都是根据比较规则实现的与equals无关

  2. 比较规则:

    1. 内部比较器|自然排序:比较规则定义在javabean类型内部,javabean类型实现compare接口,重写compare方法,在方法中定义比较规则

    2. 外部比较器|定制排序:比较规则定义在javabean类型外部,是一个是实现类,实现comparator接口,重写int compare(T o1,T o2)方法比较规则

 

 

HashSet

  1. 底层结构:哈希表(数组+链表+红黑树)底层由HashaMap维护

  2. 特点:查询,增删效率高,去重无序

  3. 遍历:

    1. 增强for

    2. iterator迭代器

  4. 去重:类型数据有要求重写hashcode和equals方法

注意:此类允许null元素,此实现不同步

 

Map

  1. 特点:无序,去重.。一个只对应一个value值,key相同value覆盖

  2. k键:无序,去重,唯一----------->set

  3. v值:无序,可重复---------->collection

  4. 遍历方式:

    1. values:获取所有键值对值

    2. keyset:获取所有键值对的key,根据key获取value

    3. entrySet:获取所有键值对,每一个键值对都是一个Entry类型

![哈希表](D:\殷老师课程资料\0207集合\004_reference\哈希表.png