HashMap设置初始容量为17,那么它的实际容量是多少?

news2025/5/21 23:03:33

典型回答

即使初始化 HashMap 的容量为 17,那么它的实际容量却是 32。

这是因为 HashMap 的容量只能为 2 的 N次方,这是 HashMap 的源代码中的实现,无论用户输入的是多少,它总会通过计算,得到第一个比他大的2的N 次方进行返回,这一点可以在 HashMap 的源码中找到,如下源码所示:

方法上的注释也写的很清楚 "Returns a power of two size for the qiven target capacity.” = “返回给定目标容量的2次方大小。”
上面代码的含义就是根据用户传入的容量值(cap 变量),通过计算,得到第一个比他大的 2 的幂并返回,我们编写代码来测试一下 tableSizeFor 方法:

public class TableSizeForExample {
    public static void main(String[] args) {
        int result = tableSizeFor(17);
        System.out.println(result);
    }

    static final int MAXIMUM_CAPACITY = 1 << 30;

    static final int tableSizeFor(int cap) {
        int n = -1 >>> Integer.numberOfLeadingZeros(cap - 1);
        return (n < 8) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
    }
}

以上程序的执行结果为:

从上述结果可以看出,传递的是 17,但最终生成的容量为 32(2 的5次方)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cc-uploadSomePic图片上传组件:快速开发与用户体验的提升

cc-uploadSomePic图片上传组件&#xff1a;快速开发与用户体验的提升 摘要&#xff1a; 在前端开发中&#xff0c;图片上传功能是一个常见的需求。为了提高开发效率和用户体验&#xff0c;我们开发了一个名为cc-uploadSomePic的图片上传组件。该组件支持单个或多个文件上传&am…

Linux下使用ntpdate进行时间同步

1.简介 ntpdate是Linux下用于从NTP服务器同步时间的命令行工具。 2.安装 大多数Linux发行版已预装ntpdate。未安装的可使用以下命令&#xff1a; # Ubuntu/Debian sudo apt-get install ntpdate # CentOS/Fedora/RHEL sudo yum install ntpdate 3.手工同步网络时间 执行以下命…

JavaScript中的继承方式详细解析

什么是继承 继承是面向对象编程中的一个重要概念&#xff0c;它指的是一个对象&#xff08;或类&#xff09;可以获得另一个对象&#xff08;或类&#xff09;的属性和方法。在继承中&#xff0c;被继承的对象通常称为父类&#xff08;或基类、超类&#xff09;&#xff0c;继…

prince2和Pmp哪个含金量高?

一&#xff0c;认证情况 1、PMP(项目管理专业人士资格认证)是PMI( 美国项目管理协会 )最有影响力的证书&#xff0c;PMBOK( 项目管理知识体系指南 )是PMP的认证标准&#xff0c;是美国国家项目管理标准&#xff0c;PMI会员有70%集中在北美&#xff0c;PMP认证在北美地区很受欢…

基础乱炖来吧

1,SSH框架和SSM区别 SSH&#xff1a;structspringhibernate&#xff0c;SSM&#xff1a;MVCspringmybatis struct入口是filter级别&#xff0c;对action类进行请求&#xff0c;一个action类对应一个请求、类拦截&#xff1b;spring-mvcservlet级别&#xff0c;方法级别请求&…

【ESP32 IDF】ESPTIMER定时器

文章目录 前言一、ESPTIMER定时器的介绍1.1 定时器是什么1.2 ESPTIMER定时器的介绍 二、ESPTIMER的使用2.1 简单使用过程2.2 停止定时器2.3 删除定时器 三、示例代码总结 前言 在ESP32 IDF开发框架中&#xff0c;ESPTIMER是一个功能强大的定时器模块&#xff0c;用于实现定时任…

武汉星起航引领跨境电商风潮,五对一服务体系助力卖家飞跃成长

在全球贸易蓬勃发展的背景下&#xff0c;跨境电商行业迎来了前所未有的机遇与挑战。在这一领域中&#xff0c;武汉星起航电子商务有限公司以其专业的运营团队和优质的服务&#xff0c;成为众多跨境卖家的首选合作伙伴。 武汉星起航自2020年创立以来&#xff0c;始终致力于为跨…

前端项目ip做域名映射

1、在阿里云、腾讯云购买域名 SSL 证书和私钥生成 阿里云生成证书详解 /path/to/your/ssl_certificate1.crt和/path/to/your/ssl_certificate1.key 生成私钥&#xff08;key&#xff09;&#xff1a; 使用 OpenSSL 工具生成一个私钥文件。执行以下命令&#xff1a; openss…

基于python高校选课系统设计与实现flask-django-nodejs-php

随着互联网技术的不断发展&#xff0c;高校选课系统的建设和应用已成为当前高校教育改革的重要方向。选课系统作为高校教务管理的重要组成部分&#xff0c;对于提高教学质量、提高学生的学习效率、优化教学资源配置具有重要的意义。本论文旨在探讨高校选课系统的设计与实现。随…

StringTable(字符串常量池)

目录 String的基本特性 String的内存分配 字符串拼接操作 intern()的使用 String的基本特性 String&#xff1a;字符串&#xff0c;使用一对""引起来表示 String声明为final的&#xff0c;不可被继承 String实现了Serializable接口&#xff1a;表示字符串是支持…

TIMESNET: TEMPORAL 2D-VARIATION MODELINGFOR GENERAL TIME SERIES ANALYSIS

本文整理至https://zhuanlan.zhihu.com/p/606575441这里是清华大学软件学院机器学习组官方公众号(THUML-LAB)&#xff0c;欢迎关注我们&#xff0c;获取最新资讯&#xff01; 本文介绍本组ICLR2023时间序列分析方向的最新工作&#xff1a;TimesNet: Temporal 2D-Variation Mode…

Python 实现1~100之间的偶数求和

result0 for i in range(101):if i%20:result result i print(result) 或者 result0 for i in range(2,101,2):result result i print(result)

从零开始学习如何使用 Postman 请求头

当你在使用 Postman 发送请求时&#xff0c;请求头&#xff08;Headers&#xff09;是你可以包含在 HTTP 请求中的重要部分之一。请求头包含了关于请求的元数据信息&#xff0c;这些信息对于服务器来处理请求是非常重要的。下面是一份详细的图文介绍&#xff0c;说明了如何在 P…

BUUCTF-Misc10

秘密文件1 1.打开附件 是一个流量包 2.Wireshark 用Wireshark打开 右键追踪tcp追踪流&#xff0c;发现一个以.rar结尾的压缩包 3.foremost 用foremost分离文件 发现有一个rar的文件夹 文件夹内有个加密的压缩包 4.ARCHPR 用ARCHPR工具对压缩包进行解密 5.得到flag [BJDCTF2…

【C语言进阶篇】自定义类型:结构体(上)

目录 1. 结构体类型的声明 ​编辑 1.1 结构体的创建和初始化 1.2 结构体的特殊声明 1.3 结构体的自引用 2. 结构体内存对齐 2.1 对齐规则 2.2 为什么存在内存对齐 2.3 修改默认对齐数 在我们描述简单对象的时候&#xff0c;使用已有的类型就足够了&#xff0c;比如: 但是当我们…

数据结构从入门到精通——排序的概念及运用

排序的概念及运用 前言一、排序的概念排序稳定性内部排序外部排序 二、排序运用三、常见的排序算法四、排序性能检测代码srand()clock() 五、oj排序测试代码 前言 排序是将数据按照一定规则重新排列的过程&#xff0c;常见规则有升序、降序等。排序算法如冒泡排序、快速排序等…

基于php健身房管理系统flask-django-python

根据现实需要&#xff0c;此系统我们设计出一下功能&#xff0c;主要有以下功能模板。 &#xff08;1&#xff09;前台功能&#xff1a;首页、运动器材、教练信息、营业信息、公告栏、在线留言、后台管理、个人中心。 &#xff08;2&#xff09;会员功能&#xff1a;首页、个人…

力扣700 二叉搜索树中的搜索 Java版本

文章目录 题目描述代码 题目描述 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,…

C++_day6:2024/3/18

作业1&#xff1a;编程题&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在…