ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HashMap 底层原理

2022-04-30 22:34:44  阅读:167  来源: 互联网

标签:slot hash HashMap 16 链表 数组 长度 原理 底层


1.hash 的概念:输入任意长度的输入通过hash 映射成固定长度的输出。

 哈希冲突是没办法避免的。10个抽屉放9个苹果 一定会有重复的

不能通过hash值推算出原文。

hashmap JDK1.8前数组+链表 ,1.8后数组+链表+红黑树。

Node结构:①key②value③next(链表所用)④hash(并不是keyy的值,是key & hashcode高16位^低16位得到的新值,这样能更好散列)

初始长度是16。(list初始长度是10 扩容一次+ >>1 如果是奇数就不一定是1.5倍)散列表是懒加载机制,第一次put时加载的。负载因子0.75

查找的时间复杂度listO(n)mapO(1)

链表长度达到8 && 散列表数组长度到64    转红黑树 。

put : 1、table没有初始化 2 算出的slot位置上没有值 3 算出的slot上是链表 4 slot上是红黑树

(什么是分布式?不同的服务部署到不同的服务器上,像mysql部署到一台,web部署到一台

    或像微服务,拆分成多个服务,每个服务可以由独立的团队开发/技术选型,独立运维)

 

标签:slot,hash,HashMap,16,链表,数组,长度,原理,底层
来源: https://www.cnblogs.com/zrfNote/p/16211619.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有