千家信息网

JDK中Hashmap的threshold与capacity的使用方法

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"JDK中Hashmap的threshold与capacity的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!
千家信息网最后更新 2026年10月31日JDK中Hashmap的threshold与capacity的使用方法

本篇内容介绍了"JDK中Hashmap的threshold与capacity的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

JDK8

List-1

public HashMap(int initialCapacity, float loadFactor) {    if (initialCapacity < 0)        throw new IllegalArgumentException("Illegal initial capacity: " +                                            initialCapacity);    if (initialCapacity > MAXIMUM_CAPACITY)        initialCapacity = MAXIMUM_CAPACITY;    if (loadFactor <= 0 || Float.isNaN(loadFactor))        throw new IllegalArgumentException("Illegal load factor: " +                                            loadFactor);    this.loadFactor = loadFactor;    this.threshold = tableSizeFor(initialCapacity);}

List-2

static final int tableSizeFor(int cap) {    int n = cap - 1;    n |= n >>> 1;    n |= n >>> 2;    n |= n >>> 4;    n |= n >>> 8;    n |= n >>> 16;    return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;}

tableSizeFor返回返回大于输入参数且最近的2的整数次幂的数。

开始构造HashMap的时候,传入6,tableSizeFor得到的是8,接着由于table数组为空,所以创建一个长度是8的table[],之后8*0.75得到新的threshold,即6,当往hashmap中插入值,元素个数超过6,则扩容,table数组的长度变为16(8*2)。

Reference

  1. https://www.cnblogs.com/loading4/p/6239441.html

"JDK中Hashmap的threshold与capacity的使用方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

使用方法 方法 内容 数组 更多 知识 长度 实用 学有所成 接下来 个数 元素 参数 困境 实际 情况 文章 时候 案例 编带 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 科技股互联网 互联网医疗科技 中国 科技 互联网 艾特科技互联网 善班互联网科技有限公司 无线互联网科技 广州善班互联网科技 互联网科技公司有哪些 盛创互联网科技有限公司 互联网大会黑科技排名 宁夏众和广鑫互联网科技有限公司 互联网科技的全部知识 广州百诚互联网科技有限公司官网 上海同邻互联网科技有限公司规模 抖集互联网科技技术咨询 珠海东科互联网科技有限公司 承德科技产业互联网平台 东风日产互联网科技公司叫什么 互联网科技创新方面的资料 丰台科技园 互联网公司 科技大学互联网专业好不好 互联网经济与金融科技 华夏恒生互联网科技013171 互联网科技圈年度人物 互联网企业科技类企业如何做账 厦门江牛科技互联网 云鲸互联网络科技有限公司 青岛互联网科技园 高科技和互联网的现代国家
0