Java Map-集合实现原理,深度了解Java集合------------HashMap的实现原理

按照惯例,我们先简单介绍一下今天所说的集合实例:HashMap

HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并且允许存储null形式的Key和Value。此实例不保证所映射的顺序,特别是不能保证该顺序一直不变。

二、那么接下来我们说一下HashMap的数据结构及底层原理

在Java编程语言中,最基本的结构就是两种,一种是数组,另外一种是模拟指针(引用);也可说成顺序存储和链式存储,几乎所有的数据结构都可以用这两个基本结构来构造的,HashMap可以称为一个链表散列的数据结构,及数组和链表的共同结构。

HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。而对于其中Entry就是其中数组的元素单位,每个Map.Entry其实就是一个Key-Value对结构,它持有一个指向下一个元素的应用,这也构成了链表结构。

对于其中王HashMap中新增元素(put),它实现原理是先根据键的hashCode重新计算hash值,根据hash值来得到这个元素在数组中的下标位置,如果此位置已经存在其他元素,那么在这个下标位置上的元素将以链式链表结构存放,先将先新增的元素添加,然后将其他后面的元素后移;如果没有元素,那么直接放在该下标位置上。那么其他的改查操作就是配置数组和链表的结构属性来进行相应操作原理。

标签:Java,HashMap,元素,链表,数组,集合,下标,结构

来源: https://blog.csdn.net/qq_40223688/article/details/87915245

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值