文档章节

HashMap hash 原理分析

专业写BUG的程序员
 专业写BUG的程序员
发布于 2017/05/31 08:05
字数 129
阅读 25
收藏 0

HashMap 选择 & 操作作为hash函数 。

000000000000000000000000000000001     2-1

000000000000000000000000000000011     4-1

000000000000000000000000000000111     8-1

000000000000000000000000000001111     16-1

000000000000000000000000000011111     32-1

000000000000000000000000000111111     64-1

 

如果 任意一个1换为0 则意味着不管被哈希数字对应位上是0还是1,都会被hash到同一个位置。极端情况

&0 进行哈希则所有数字都被哈希到 0 号位。

 

为什么有 (h = key.hashCode()) ^ (h >>> 16); 操作 ;

00000000000001110000000000000000

00000000000011110000000000000000

如果没有位移操作则这两个数会被 hash 到同一位置。

 

 

© 著作权归作者所有

专业写BUG的程序员
粉丝 8
博文 113
码字总数 25709
作品 0
海淀
程序员
私信 提问
HashMap, HashTable, HashSet分析

HashMap分析: 其主要特性:(key-value)存储,key-value可为NULL, 非线程安全。 其主要属性: //默认容量微16static final int DEFAULTINITIALCAPACITY = 1 << 4;//最大容量2^30static fina...

ihaolin
2014/03/11
0
0
HashMap-你可能需要知道这些

HashMap是Android程序员(当然也包括Java程序员)经常使用的映射数据类型,伴随着JDK的版本更新,JDK1.8相比1.7对HashMap的底层实现了一些优化,尤其是红黑树这个点(现在面试的时候基本都会问...

24K男
2017/10/09
0
0
ConcurrentHashMap实现原理及源码分析

ConcurrentHashMap实现原理及源码分析   ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考 另一篇文章HashMap实现原理及...

DemonsI
2018/08/20
0
0
源计划之从HashMap认识数据结构

之前一直说看HashMap源码一直没有看过,以至于面试时候,没能够说清楚很多问题,现在面试基本都会问到的一道问题,就是HashMap源码,你是否看过HashMap源码,HashMap的具体数据结构是怎么的。...

vn熊
2018/07/24
0
0
Java容器源码分析-HashMap vs TreeMap vs LinkedHashMap

这里我采用的分析方式是帖子博客加上自己翻看jdk源码。有些情况下写一些测试的算法小例子加深印象。我这里只描述一下自己的总结想法 上一篇文章我们研究了set接口下的几个容器,由于其Set集合...

贾浩v
2017/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
4
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
3
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
13
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部