hashMap 方法详解
2024-08-31 21:57:09
http://www.iteye.com/topic/754887
/**
* 扩展散列表的容量
* @param newCapacity
*/
void resize(int newCapacity) {
Entry[] oldTable = table;
int oldCapacity = oldTable.length;
Entry[] newTable = new Entry[newCapacity];
transfer(newTable);
table = newTable;
threshold = (int) (newCapacity * loadFactor);
} /**
* 重新进行散列
* @param newTable
*/
void transfer(Entry[] newTable) {
Entry[] src = table;
int newCapacity = newTable.length;
for (int j = 0; j < src.length; j++) {
Entry<K, V> e = src[j];
if (e != null) {
src[j] = null;
do {
Entry<K, V> next = e.next;
int i = indexFor(e.hash, newCapacity);
e.next = newTable[i];
newTable[i] = e;
e = next;
} while (e != null);
}
}
}
最新文章
- Javascript模板引擎插件收集
- EntityFramework 7 Left Join Where is error(Test record)
- Linux Socket编程
- Eclipse使用Maven构建web项目
- MSSQL 生成拼音码
- 一个很不错的bash脚本编写教程
- 【Android Developers Training】 55. 序言:高效显示位图
- solr6.5的安装与配置
- protobuf 原理
- Python读取JSON数据,并解决字符集不匹配问题
- 线程池、进程池(concurrent.futures模块)和协程
- git remote: HTTP Basic: Access denied Mac 使用Sourcetree 密码输错 再次输入解决方案
- ASP.NET Core2.2 多用户验证和授权
- SET XACT_ABORT ON是什么?
- Commons Lang 介绍
- Linux之常识小结[版本]
- 免费的协作和协同办公软件平台onlyoffice轻松部署
- N76E003之IIC
- SCLAlertView-Swift
- isNaN与parseInt/parseFloat