美文网首页
HashMap小结

HashMap小结

作者: 平头说人生 | 来源:发表于2018-06-18 09:44 被阅读4次

1 HashCode的作用就是将数据分组,这样数据进行比较的时候只需要跟它对应组的数据一一比较就好,大大提高效率。
2 HashMap的实现原理就是通过数组和链表来实现的。
数组存储的是HashCode对应的一个Entry对象,
Entry对象就是一个链表结构,该链表将所有相同HashCode值的Entry对象串起来。
这样在比较一个对象是否存在与HashMap中的时候只需要比较相同HashCode下的对象是否相等就好了。当存在大量数据的时候,HashCode越多,分组就越多,对象比较的次数就越少,效率就越高。
3 HashMap中的HashCode是优化过的,先将Key值获取Hashcode,然后在进行一次自定义的Hash 优化,优化后得到的hash值在与数组长度的减一进行与运算(2^n -1)得到Entry在数组中的索引。
这个很巧妙,数组长度总是2的N次方,2N次方减1后的二进制全是1,这样和hash值进行与运算的时候会均匀分布,如果存在0的情况下,与运算后总有地方是0,导致分布不均匀。就会导致某个数组下的Entry特别多,遍历效率降低。

相关文章

  • HashMap小结

    1 HashCode的作用就是将数据分组,这样数据进行比较的时候只需要跟它对应组的数据一一比较就好,大大提高效率。...

  • HashMap小结

    HashMap数据结构 这周重点看了下hashmap的源码,这是种我们经常需要用的数据结构,因此有必要了解下它的组...

  • HashMap 小结

    HashMap 是 Java 里面比较重要的一个类,我们先想想常用的两种数据结构 数组 和 链表 我们先回顾下这两...

  • HashMap分析小结

    HashMap是Java使用频率很高的容器对象,内部使用了很多优化算法,源码非常值得学习. 关于HashMap 非...

  • hashmap学习小结

    1.HashMap是基于Map接口实现的一种键-值对的存储结构,允许null值,同时非有序,...

  • Java 1.8 HashMap小结

    关于JDK1.6、1.7、1.8三个版本,HaspMap的实现是有区别的,特别是1.8,对hashmap的结构进行...

  • Hashmap和List小结

    tags: [JAVA]categories: 技术 List 中获取相同元素出现次数,得到元素和次数对应的 ma...

  • BloomFilter & Hyperloglog 去重 & 统

    去重小结 最近在做爬虫的时候,遇到了去重的问题,关于去重,有很多地方可以做,比如 内存级别,利用 hashmap,...

  • 深入剖析:JDK8中的HashMap初始化和扩容机制

    前言 本文大致分为四个部分:Hashmap初始化方法、初始化过程、扩容过程以及小结,希望大家看完这篇文章后会有所帮...

  • HashMap了解一下

    前言 HashMap HashMap类继承图 HashMap属性 HashMap构造函数HashMap(int i...

网友评论

      本文标题:HashMap小结

      本文链接:https://www.haomeiwen.com/subject/inogeftx.html