什么时候扩容:当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值 即当前数组的长度乘以加载因子的值的时候,就要自动扩容啦。 扩容(resize):当HashMap对象内部的数组无法装载更多的元素时,对象就需要扩大数组的长度,以便能装入更多的元素。Java里的数组是无法自动扩容的,所以 ...
分类:
其他好文 时间:
2017-04-14 20:27:16
阅读次数:
138
加载因子是表示Hsah表中元素的填满的程度.若:加载因子越大,填满的元素越多,好处是,空间利用率高了,但:冲突的机会加大了.反之,加载因子越小,填满的元素越少,好处是:冲突的机会减小了,但:空间浪费多了.冲突的机会越大,则查找的成本越高.反之,查找的成本越小.因而,查找时间就越小...
分类:
其他好文 时间:
2017-03-25 21:11:11
阅读次数:
156
HashMap: 在这里提到了两个参数:初始容量,加载因子。 这两个参数是影响HashMap性能的重要参数,其中容量表示哈希表中桶的数量,初始容量是创建哈希表时的容量, 加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,它衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度 ...
分类:
其他好文 时间:
2016-11-03 02:04:38
阅读次数:
574
这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。 加载因子的系数小于等于1,意指 即当 元素个数 超过 容 ...
分类:
其他好文 时间:
2016-09-12 12:12:25
阅读次数:
114
Hashtable Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量就是哈希表创建时的容量。注意,哈希表的状态为 open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索。加载因子 是对哈希表在其容量自动增加之前可以 ...
分类:
编程语言 时间:
2016-08-19 20:27:59
阅读次数:
204
一、源码解析 (1). 属性 (2). 构造方法 public HashMap(int initialCapacity, float loadFactor):new hashmap,自定义初始化容量和加载因子 public HashMap(Map<? extends K, ? extends V> ...
分类:
编程语言 时间:
2016-05-19 11:55:28
阅读次数:
236
一、散列表
1.容量:散列表中的散列数组大小
2.散列运算:key->散列值的算法
3.散列桶:散列值相同的元素的“线性集合”
4.加载因子:就是散列数组加载率,就是元素数量/散列数组大小
5.散列查找:根据key计算散列值,找到散列桶,在散列桶中顺序比较key,如果一样就返回value
6.散列表中key不同,value可以重复
例子:
User u1=new User(1,...
分类:
编程语言 时间:
2016-05-07 08:51:23
阅读次数:
197
java hashmap,如果确定只装载100个元素,new HashMap(?)多少是最佳的,why? 要回答这个问题,首先得知道影响HashMap性能的参数有哪些。咱们翻翻JDK。 在JDK6中是这么描述的: HashMap的实例有两个参数影响其性能:初始容量和加载因子。 首先我们来看初始容量和 ...
分类:
其他好文 时间:
2016-04-11 18:22:37
阅读次数:
133
第1部分 HashMap介绍HashMap简介HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。容量是哈希表中桶的数量,初始容量 只是...
分类:
编程语言 时间:
2015-03-30 22:24:57
阅读次数:
204
publicLinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder);initialCapacity 初始容量loadFactor 加载因子,一般是 0.75faccessOrder false 基于插入顺序 ...
分类:
其他好文 时间:
2015-03-18 13:49:00
阅读次数:
122