HashMap底层原理

在这里先简单介绍一下基础的数据结构

1.数组

数组的本质就是一块连续的内存,存放着具有相同类型的数据。

优点:可以通过数组的下标,直接进行访问;

缺点:插入节点困难;

     2.单链表

单链表一般是由一个data域和next指针域构成一个节点,next指针指向下一个节点。其中Head指向头节点,Tail指向尾节点。插入时只需修改next指针的指向即可。

优点:插入和删除数据方便;

缺点:查询效率低;

         HshMap的数据结构包括了初始数组、链表、红黑树(JDK1.8以后增加)

1.插入数据的时候使用 pos=keyW%size来进行插入数据

2.当两个或两个以上的key的key相同且key值不同的时候(发生冲突),就会挂在数组初始化后的链表后

3.对于JDK1.8以上的版本,当单个链表的长度超过8时,就会转换成红黑树以提高效率

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值