容器 Collection Map

容器

Collection 继承树:
在这里插入图片描述
Map 继承树:
在这里插入图片描述
在这里插入图片描述

Collection (集合)

容器层次结构中的根接口

  • Collection 表示一组对象,这些对象也称为集合的元素。

  • JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。

list子接口:有序的可重复
set子接口 :无序的不可重复
Queue子接口:队列 先进先出


Map (映射)

容器层次结构中的根接口
与Collection不同 Map中的元素是成对儿存在的

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
存储键值对形式的数据 key-value (K-V)

各容器对比:

Collection:

名称顺序重复线程序列化底层查询增删超类
List (I)有序可重复Collection
Vector有序可重复安全可以数组List
ArrayList有序可重复不安全不可以数组List
LinkedList有序可重复不安全可以双向链表List&Queue
Set (I)无序不可重复Collection
TreeSet有序不可重复不安全可以红黑树Set
HashSet无序不可重复不安全HashMapSet
LinkedHashSet无序不可重复不安全LinkedHashMapHashSet
Queue (I)Collection

Map:

名称顺序重复线程序列化底层查询增删超类
HashTable无序可重复安全哈希表Map
HashMap无序可重复不安全哈希表Map
LinkedHashMap有序可重复不安全哈希表 双向链表HashMap
TreeMap有序不可重复不安全红黑树Map

特点总结:

标识特点
Linked链式顺序 有序 增删块
Array查询快 增删慢
Hash查询最快 无序
Tree升序 有序★ 不可重复
LinkedHash链式顺序 增删块 查询快
Victor同步的 增删 查询 都较慢
set无序 不可重复
list有序 可重复

问题

1.ArrayList扩容

初始化
底层动态数组
参数等于0 初始化为 空数组
参数不等于0 初始化为 容量10的数组

扩容时机
当数组的大小大于初始容量的时候
(比如初始为10,当添加第11个元素的时候),
就会进行扩容,新的容量为旧的容量的1.5倍。

扩容方式
新建原数组的拷贝,修改原数组,指向这个新数组,原数组被抛弃,会被GC回收。

2.Vector扩容

2倍扩容

3.HashSet扩容

默认初始容量16
加载因子0.75
扩容是原容量的2倍


继承树

LinkedList:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值