活动地址:CSDN21天学习挑战赛
目录
Set
Set系列集合特点
无序:存取顺序不一致
不重复:可以去除重复
无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素。
Set集合实现类特点
HashSet : 无序、不重复、无索引。
LinkedHashSet:有序、不重复、无索引。
TreeSet:排序、不重复、无索引。
Set集合的功能上基本上与Collection的API一致。
Set系列集合的特点。
无序、不重复、无索引。
Set集合的实现类特点。
HashSet无序、不重复、无索引。
LinkedHashSet 有序、不重复、无索引。
TreeSet 可排序、不重复、无索引。
HashSet底层原理
HashSet集合底层采取哈希表存储的数据。
哈希表是一种对于增删改查数据性能都较好的结构。
哈希表的组成
JDK8之前的,底层使用数组+链表组成
JDK8开始后,底层采用数组+链表+红黑树组成。
JDK1.8版本开始HashSet原理解析
底层结构:哈希表(数组、链表、红黑树的结合体)
当挂在元素下面的数据过多时,查询性能降低,从JDK8开始后,当链表长度超过8的时候,自动转换为红黑树。
可变参颡
可变参数
用在形参中可以接收多个)据。可变参效的格式:缴据类型…参缴名称
可变参埶的作用
接收参数非常灵活,方便。可以不接收参数,可以接收1个或者多个参数,也可以接收一个效组·可变参数在方法内部本质上就是—个数组。
可变参教的注意事项:
1.一个形参列表中可变参)只能有一个
2.可变参)必须放在形参列表的最后面
Collections集合工具类
java.utils.collections:是集合工具
作用: collections并不属子檠合,是用来操作集合的工员类。
Map集合概述和使用
Map集合是一种双列集合,每个元素包含两个数据。Map集合的每个元素的格式: key-value(饽值对元泵)。Map集合也被称为“键值对集合”。
Map集合整体格式:
collection集合的格式:[元素1,元素2,元震3…1
Map集合的完整格式:{key1-value1 , key2-value2 , key3-value3 , …}
Map集合体系特点
Map集合的特点都是由链决定的。
Map集合的链是无序,不笆复的,无索引的,值不做萎求〈可以篮复)。Map集合后面笆复的链对应的值会覆盖前面笆复链的值。
Map集合的链值对都可以为null。
Map集合实现类特点
HashMap:元素按照键是无序,不重复,无索引,值不做萎求。(与Map体系一致)LinkedHashMap :元素按照链是有序,不篮复,无索引,值不做萎求。
TreeMap:元素按照连是排序,不笆复,无索引的,值不做萎求。
TreeMap集合概述和特点
由键决定特性:不笆复、无索引、可排序
可排序:按照键数据的大小默认升序〈有小到大)排序。只能对键排序。
注意:TreeMap集合是一定要排序的。可以默认排序。也可以将键按照指定的规则进行排序
TreeMap服Tree8et—样底层原连是一样的。
TreeMap集合自定义排序规则有2种
·类实现Comparable接口,茧写比较规则。
集合自定义Comparator比较器对象,写比较规则。
Map集合实现类特点
HashMap:元乘按照键是无序,不筐复,无索引,值不做萎求,基于哈希表(与Map体系一致)
LinkedHashMap:元)按照锤是有序,不重复,无索引,值不做萎求,基于哈希表
TreeMap:元震只能按照链排序,不重复,无索引的,值不做萎求,可以做排序