Collection和Map常用类和特征,及其特点
2020-02-06 本文已影响0人
YQY_苑
image.png
1.ArrayList
- 底层实现为数组,默认初始化话大小为10(1.7是在add的时候默认初始化的) ,扩容为原来的两倍,所以若果知道所要存的大概的大小就初始化时给个初始化大小,避免数组扩容损失性能,具备数组的特点,查找添加数据快,删除插入数据慢
private static final int DEFAULT_CAPACITY = 10;
2.LikedList
- 底层实现为双向链表,具备链表的特点,查询数据慢,删除添加插入数据快
3.HashSet
*底层实现为HashMap,存入的数据放在HashMap key 的位置,无序不能重复,
4.LinkedHashMap
*底层实现为LinkedHashMap 数据存入在key 的位置,有序不能重复
5.HashMap
-
底层实现为数组加链表,以key.hashcode进行散列存储确定数组位置,然后散列碰撞后存在数组位置的单向链表中
-
数组初始化大小为16 也存在数组扩容问题,所以能确定数据大小的话尽量在初始化时设置,扩容因子默认0.75 扩容条件当存入的数量大于 16*0.75=12 时数组扩容为本身的两倍 扩容很消耗性能