Set系列集合的特点
无序:存取顺序不一样
不重复 可以除去重复
无索引 没有带索引的方法 所以不能使用普通的for循环遍历 也不能通过缩影获得元素
Set 集合实现类特点
HashSet : 无序 、 不重复 、无索引
LinkedHashSet : 有序 不重复 无索引
TreeSet : 排序、不重复、无索引
Set集合的功能上基本与Collection的API一致
HashSet 集合低层采用哈希表存储的数据
哈希表是一种对于增删改查数据性能都比较好的结构
LinkedHas个Set 集合概述和特点
底层数据结构是依然哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序。
TreeSet 集合概述和特点
不重复 无索引 可排序
可排序 按照元素的大小默认升序*(从小到大)排序
TreeSet 集合底层是基于红黑树的数据节构实现排序的 增删改查性能都比较好
注意:TreeSet集合是一定要排序的,可以将元素按照指定的规则进行排序
TreeSet 集合默认的规则
对于数值类型:Integer ,double 默认升序
对于字符串类型 默认按照首字符的编号升序
对于自定义如Student 对象 TreeSet无法直接排序
自定义排序规则
方法一 实现Comparable接口 重写里面的compare方法定制规则
方法二 TreeSet 集合有参数构造器 可以设置Comparator接口对应的比较器对象,来定制规
两种方式中,关于返回值的规则
如果认为第一个元素大于第二个元素返回正整数即可。
如果认为第一个元素小于第二个元素返回负整数即可。
如果认为第一个元素等于第二个元素返回0即可,此时Treeset集合只会保留一个元素,认为两者重复。
总结
TreeSet集合的特点怎么样
可排序 不重复 无索引
底层基于红黑树实现排序 增删改查性能较好
TreeSet 自定义排序规则
类实现Comparable接口 ,重写比较规则
集合自定义 Comparator比较器对象, 重写比较器规则
Collection
2. 如果希望元素可以重复,又有索引,增删首尾操作快?
3. 如果希望增删改查都快,但是元素不重复、无序、无索引。
4. 如果希望增删改查都快,但是元素不重复、有序、无索引。
5. 如果要对对象进行排序。
用TreeSet集合,基于红黑树。后续也可以用List集合实现排序
Collections 集合工具类
Collections 并不属于集合,是用来操作集合的工具类
Collections 常用的API
Collections 排序相关的API
使用范围只能对List集合的排序
map集合概括和使用
Map 集合是一种双列集合,每一个元素都包含两个数据
Map集合的每一个元素的格式:key = value 键对值元素
Map集合 键对值集合
Map集合整体格式
Collection集合的格式: [元素1,元素2,元素3.。。。。]
Map 集合的完整格式 {key1=value1,key2=value2....}
Map 集合体系
说明
使用最多的是Map 集合是HashMap
重点掌握HashMap,LinkedHashMap TreeMap
Map 集合的键无序 不重复
值 可以重复 不做要求
Map 集合体系特点
Map 集合的特点都是由键决定的
Map 集合的键是无序的 不重复 无索引的 值不做要求的
Map 集合后面重复的键对应的值会覆盖前面的重复键的值
Map 集合的键值都可以为null
Map 集合实现类的特点
HashMap 元素按照键是无序的 不重复的 无索引的 值不做要求 (与map体系一样)
LinkedHashMap 元素按照键有序 不重复 无索引 值不做要求
TreeMap 元素按照 键是排序的 不重复的 无索引的 值不做要求
Map 是双列集合的祖宗接口 他的功能是全部双重集合都可以继承使用的
Map API如下
Map 集合的遍历方式有三种
方式一 键找值的方式遍历 先获取Map 集合全部键 再根据遍历键找值
Set
V get(Object key) 根据键获取值
方式二 键值对的方式遍历 吧键对值 看成一个整体 难度
HashMap 的特点
HashMap是Map里面的一个实现类。特点都是由键决定的:无序、不重复、无索引
l没有额外需要学习的特有方法,直接使用Map里面的方法就可以了。
HashMap跟HashSet底层原理是一模一样的,都是哈希表结构,只是HashMap的每个元素包含两个值而已
实际上:Set系列集合的底层就是Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。
LinkedHashMap 集合概述和特点
由键决定:有序、不重复、无索引
l这里的有序指的是保证存储和取出的元素顺序一致
l原理:底层数据结构是依然哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序。
TreeMap 集合和特点概述
l由键决定特性:不重复、无索引、可排序
l可排序:按照键数据的大小默认升序(有小到大)排序。只能对键排序。
l注意:TreeMap集合是一定要排序的,可以默认排序,也可以将键按照指定的规则进行排序
lTreeMap跟TreeSet一样底层原理是一样的。