`
lemonhandsome
  • 浏览: 9971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HashMap的处理原理

阅读更多

Map<Integer,Integer> a = new HashMap<Integer,Integer>();
        a.put(3,3);
        a.put(18,18);
        a.put(33,33);
        a.put(48,48);
        a.put(71,71);
        a.put(86,86);
        a.put(101,101);
        a.put(116,116);
        a.put(138,138);
        a.put(155,155);
        a.put(168,168);
        a.put(185,185);
        a.put(206,206);
        a.put(223,223);
        a.put(236,236);



 

上面这些数的哈希值并不冲突,但是哈希值对16取模都等于3,所以造成他们都位于一条链上,即table[3]上

相当于此时table是这样的状态

table[0]=null;

table[1]=null;

table[2]=null;

table[3]=entry[185]->entry[168]->entry[155]->entry[138]......->entry[3]

table[4]=null;

.....

table[15]=null;

 

当大于size>=threshold后,开始进行resize操作,table会变成一个新的,size=32的数组

此时需要将原有数据移动到这里,那会乱吗?根据推算不会,会产生两个数据链

 

table[0]=null;

table[1]=null;

table[2]=null;

table[3]=entry[168]->entry[138]->......->entry[3]

table[4]=null;

.....

table[19]=entry[185]->entry[155]->......->entry[18]

.....

table[31]=null;

 

resize触发条件和table数组实际被占数无关,和entry的总数有关

  • 大小: 57.1 KB
分享到:
评论

相关推荐

    基于HashMap的用户标签处理兼Java中HashMap实现原理研究.pdf

    基于HashMap的用户标签处理兼Java中HashMap实现原理研究

    HashMap原理.docx

    HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了...而Hashtable则不能(原因就是equlas()方法需要对象,因为HashMap是后出的API经过处理才可以)2、HashMap的工作原理是什么?

    HashMap-面试必过

    1.说一下 HashMap 的实现原理? 2.HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现? 3.HashMap的put方法的具体流程? 4.HashMap的扩容操作是怎么实现的? 5.HashMap是怎么解决哈希冲突的? 6.什么是哈希?...

    HashMap原理分析及性能优化

    HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。 HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap...

    Java HashMap高难度面试题集锦解析Java HashMap面试题及答案解析-高难度

    提供了20道高难度的Java HashMap面试题及详细答案解析,涵盖了HashMap的内部实现原理、哈希冲突处理、扩容机制、线程安全性等方面的知识点,适合准备Java面试的开发者参考。

    JavaSE基础面试题.docx

    19.说说HashMap如何处理碰撞的,或者说说它的扩容? 20.jdk7/8中对HashMap做了哪些改变? 21.负载因子为什么会影响HashMap性能 22.为什么HashMap中initailCapacity要设置成2的n次幂 23.ConcurrentHashMap分段式加锁...

    Java面试题-并发.docx

    通过对HashMap的不同问题进行深入分析,读者可以全面了解该数据结构的工作原理和使用注意事项。 首先,文档解释了为什么HashMap选择红黑树作为数据结构,而不是其他结构,主要是因为红黑树在处理哈希冲突时具有更快...

    Java面试题-哈希.docx

    通过对HashMap的不同问题进行深入分析,读者可以全面了解该数据结构的工作原理和使用注意事项。 首先,文件解释了为什么HashMap选择红黑树作为数据结构,而不是其他结构,主要是因为红黑树在处理哈希冲突时具有更快...

    微服务架构面试专题系列(MySQL,JVM,并发编程,RabbitMQ消息中间件,Spring)

    1. Java基础包括了:集合,HashMap,JVM等常见考点, 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? 对象的创建 为对象分配内存 ...

    10G的Java面试题视频课

    1. Java基础包括了:集合,HashMap,JVM等常见考点, 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? 对象的创建 为对象分配内存 ...

    Java程序员大厂面试(进大厂必看)

    1. Java基础包括了:集合,HashMap,JVM等常见考点, 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? 对象的创建 为对象分配内存 ...

    互联网企业面试真题.zip

    1. Java基础包括了:集合,HashMap,JVM等常见考点, 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? 对象的创建 为对象分配内存 ...

    ConcurrentHashMap的实现原理(JDK1.7和JDK1.8).pdf

    哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查 找的值即 key,即可查找到其对应的值。 哈希的思路很简单,如果所有... 这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。

    Android-Advance:安卓系统以及进阶教程

    双亲委派模型原理Java基础final关键字可以修饰某种,作用分别是什么volatile可以修饰某种,作用分别是什么同步可以修饰某种,作用分别是什么典型引用类型内部类分为些HashMap实现原理什么是注解,注解的原理,利用...

    Java面试通关宝典:深度解读核心知识点与实战技巧,全面提升面试表现力与技术实力

    解释HashMap的工作原理和如何处理哈希冲突;讨论如何选择合适的集合类来解决特定问题等。 多线程与并发:这部分问题涉及到Java的线程模型、同步机制、并发工具类等。 JVM与性能优化:这部分问题涵盖了JVM内存模型、...

    Java岗位常规面试题.pdf

    3. Java中的HashMap和ConcurrentHashMap有什么区别?请比较它们的特点和适用场景。 4. 请解释Java中的线程安全(Thread Safety)是什么,以及如何实现线程安全的代码。 5. 什么是Java中的异常处理(Exception ...

    java程序员面试宝典 含答案

    e:arraylist, vector, hashmap ,hashtable,linklist等的区别; f:String类的相关方法的使用 g:垃圾回收机制的相关知识,如优点,原理等; h:java的异常处理; i:工作流的相关知识;j:多线程问的也很多;k:其他,...

    JAVA高并发高性能高可用高扩展架构视频教程

    JAVA企业级基础课题(HashMap那些事) 企业架构师必备技能(JAVA核心技术反射) JavaWeb之基础(手写实现Tomcat服务器) java多线程编程 纯手写实现SpringIOC实现过程 JEE企业级开发(企业级项目开发权威指南) 网络爬虫之...

    涵盖了90%以上的面试题

    hashmap的底层原理 hashmap产生死锁的原因 hashmap的容量为什么一定要是2的幂呢 TreeMap的底层原理 HashMap,Hashtable和ConcurrentHashMap的区别 在ArrayList和LinkedList尾部添加元素,谁的效率更高 如果HashMap或者...

    java 面试题(1)

    java 面试题(1)都是些基础的,1. 面向对象的特征有哪些方面2. Java中的异常处理机制的简单原理和应用3. String是最基本的数据类型吗?4. int 和 Integer 有什么区别5. String 和StringBuffer的区别6. 说出ArrayList...

Global site tag (gtag.js) - Google Analytics