Map集合总结

map

1、HashMap特点:
无序、唯一、效率高,线程不安全,key可以存入null
是按照key进行总结的,因为底层key遵照哈希表的结构(数组+链表)
哈希表原理:比如放入这个集合的数据对应的那个类:必须重写hashCode方法和equal()方法
2、Hashtable特点:效率低,线程安全、key不可以存入null

3、LinkedHashMap:
底层:哈希表+链表
特点:唯一,有序
4、TreeMap:唯一、有序、底层原理:二叉树,key遵照二叉树的特点放入集合的key数据对应的类型内部一定要实现比较器(内部比较器,外部比较器)
Collections工具类:
Collection不支持创建对象,因为构造器被私有化了,里面的属性和方法都是被static修饰,我们可以直接使用类名,去调用即可。

Tree:
红黑树特点:平衡二叉树,左子树和右子树所在的层数是差不多的

hashMap的put过程:
在这里插入图片描述
hashMap的常见面试题:
1、装填因子、负载因子、加载因子为什么是0.75。
装填因子设置为1:空间利用率得到了很大的满足,很容易碰撞,产生链表的机率高—>查询效率低
装填因子设置为0.5:碰撞的概率低,扩容,产生链表的机率低——>查询效率高,空间利用率低。
2、主数组的长度为什么必须为2^n。
原因:h&(length-1) 等效 h%length操作,等效的前提就是:length必须是2的整数倍。如果不是2^n就不能进行与运算。
原因2:防止哈希冲突,位置冲突
ConcurrentHashMap:
常见面试题:
1、数据结构
2、参数
3、源码
4、扩容流程
5、CAS+synchronized
6、volatile
数据结构:
jdk1.7:数组+链表
jdk1.8:数组+链表+红黑树
为什么会增加红黑树:
提高查询效率,因为红黑树是平衡二叉树,可以使用二分法进行查找元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值