java进阶:集合


活动地址: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:元震只能按照链排序,不重复,无索引的,值不做萎求,可以做排序

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫嘴的辛拉面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值