JAVA集合(学习篇)

⚪集合分为CollectionMap两种体系。

Collection单列集合,每个元素(数据)包含一个值;

Map双列集合,每个元素包含两个值(键值对,key,value)

⚪Collection集合体系:

⚪Collection集合主要方法:

⚪List集合的实现类的底层原理:

ArrayList底层是基于数组实现的,根据查询元素快,增删相对慢

LinkedList底层是基于双链表实现的,查询速度慢,增删首尾元素非常快

 ⚪HashSet集合采用哈希表存储的结构

⚪哈希表在JDK8之前底层使用数组+链表组成,在JDK8之后低层采用数组+链表+红黑树组成

 Map集合主要方法:

Map是双列集合的祖宗接口,他的功能是全部双列集合都可以继承使用的

 ⚪Map集合遍历方式

键找值:先获取Map集合的全部键的Set集合,遍历Set集合,然后通过键找对应的值

键值对:先把Map集合转换成Set集合,Set集合每个元素就是键值对实体类型,遍历Set集合,就能提取键和值了

 实际上,Set集合的底层就是Map实现的,只是Set集合的元素只要键数据,不要值数据

注意:

集合是支持泛型的,集合和泛性都只能支持引用类型数据,不支持基本类型数据,所以集合中存储的元素都认为是对象

在集合接口中,都存在of方法,可以创建一个不可变的集合,这个集合不能添加,不能删除,不能修改

最后总结一下常用集合的分类

Collection 接口的接口 对象的集合(单列集合)
├——-List 接口:元素按进入先后有序保存,可重复
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└——-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序

Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全-
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap

---------------------可能总结的会不全,以后有学新的再补---------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值