今天来看看java中的hashmap,提到hashmap,我们会想到另一个类,没错那就是hashtable,它们之间的区别在此就不多说了,hashmap是允许key和value为null,而且它是非同步的。今天我们主要看看hashmap中影响hashmap执行性能的两个关键参数。
这两个参数是initialCapacity和loadfactor,capacity是hash表中buckets的数量,initialCapacity是hashmap创建时capacity的大小,loadfactor是作为hash表空间大小的一个评估。当hash表中的entries数量超过loadfactor与当前capacity的乘积时hash表将被rehashed(对内部数据重新组装)。
1、initialCapacity
为hashmap的初始容量,若未设置该值的话,还有一个参数为default_initial_capacity=16(调用无参构造函数时),如果hash函数在buckets间合理的传播元素,hashmap为一些常规的方法提供了固定时间性能操作(如get,put)。但若遍历集合视图就必须要求时间和hashmap的capacity大小(buckets的数量)相对称,再加上它的尺寸(key-value对的数量),因此,不要把capacity设置的太大或者不要把loadfactor设置的太小都是十分重要的,否则的话就会影响迭代的性能。
2、loadFactor
默认值为0.75,因为这个值在时间和空间消耗上提供了一个很好的权衡,高于这个值时虽然减少了日常空间的消耗,但是会增加检查的消耗(put,get调用时)
相关推荐
HashMap源码深度剖析,面试必备
HashMap源码剖析共10页.pdf.zip
JavaHashSet和HashMap源码剖析编程开发技术共13页.pdf.zip
之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。 HashMap实现了Map...
HashMap(JDK1.8)源码剖析 这又是看了忘忘了看系列之一,今天有空写个文档记录下,希望能从JDK源码中慢慢悟出他们优秀的思想。本文主要记录以下几个方面。 1、HashMap的继承、实现结构 2、HashMap...
主要介绍了Java中HashMap数据结构的源码及其性能优化,文中以Java 8后HashMap的性能提升来讨论了HashMap的一些优化点,需要的朋友可以参考下
主要介绍了深入理解Java之HashMap源码剖析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...
ConcurrentHashMap源码剖析
Memcached基于一个存储键/值对的hashmap。 Memcached是一个自由、源码开放、高性能、分布式内存对象缓存系统,目的在于通过减轻数据库负载来使动态Web应用程序提速。 Memcached是一个在内存中对任意的数据(比如字符...
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站...Memcached基于一个存储键/值对的hashmap。
9、HashMap的底层原理 10、Java单例模式详解 11、JAVA的内存结构 12、java队列 13、Java基础思考之数据传递 14、JAVA内存泄漏详解 15、java序列化方式 16、java中实现多态的机制 17、string常量池和intern
ConcurrentHashMap是J.U.C(java.util.concurrent包)的重要成员,它是HashMap的一个线程安全的、支持高效并发的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。...
在开发过程中,map是必不可少的数据结构,在Golang中,使用map或多或少会...hashmap的定义位于 src/runtime/hashmap.go 中,首先我们看下hashmap和bucket的定义: type hmap struct { count int // 元素的个数 flags
剖析⾯试最常⻅问题之 Java 集合框架 集合概述 Java 集合概览 从下图可以看出,在 Java 中除了以 Map 结尾的类之外, 其他类都实现了 Collection 接⼝。 并且,以 Map 结尾的类都实现了 Map 接⼝。 说说 List,Set,...
二分&HashMap HashSet&TreeSet 索引技术 中文分词算法 Lucene 性能调优 JVM性能调优 JVM类加载机制详解 JVM内存模型 类字节码文件深度剖析 垃圾收集机制详解 十种垃圾收集器详解 JVM调优工具详解 GC日志详细分析 JVM...
Java基础:集合类、HashMap/HashTable/CurrencyHashMap这几个的区别以及不JDK版本的区别、其他面向对象的语法,NIO,BIO,AIO; JVM:虚拟机结构,内存模型,双亲委派模型,内存溢出举例说明,垃圾回收算法,四大...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程...└─面试必问-聊聊哈希算法与HashMap
16_集合-hashset-hashmap-迭代器-entryset$ d3 b$ ~5 b! @- Z* }- C 17_快捷键设置* L* C. y4 Z1 v0 p) [8 p3 A 18_IO& f, H- i' w( B; P% V; Q" z. L( n/ q 19_IO2 20_文件归档和解档 21_TCP+udp协议-广播 22_UDP...