JAVA-集合相关

news2024/9/22 21:45:12

HashMap如何解决哈希冲突的?

  1. 计算hash值,基于hashCode计算
  2. 冲突之后,先是使用链式寻址法
  3. 当链表长度大于8,且hash表的容量大于60的时候,再添加元素则转化成红黑树

为什么计算hash值是,是将hash地址的值右移16取异或?
核心目的:减少hash冲突的概率。

hashMap什么时候扩容?
大于当前容量的75%时,执行扩容操作
当 HashMap 元素个数达到扩容阈值,默认是 12 的时候,会触发扩容。
默认扩容的大小是原来数组长度的 2 倍,HashMap 的最大容量是 Integer.MAX_VALUE,也就是 2^31-1。在这里插入图片描述

HashMap会什么会产生死循环?

只有1.7存在这个问题,1.8已经解决了。头插法。
在这里插入图片描述
如果线程A和线程B同时触发了扩容操作,此时,A处于扩容中,而B线程已经扩容完成,则A对应的指针操作,此时A对应的节点如下:
死循环达成。
在这里插入图片描述

ConcurrentHashMap的底层实现原理?

线程安全===怎么实现的?syns?lock?

  1. 数据结构:数组+单向链表+红黑树组成
  2. 并发安全:对指定的node节点加锁,来保证数据更新的安全性

ConcurrentHashMap的size方法线程安全吗?
非线程安全方法。
在这里插入图片描述

ConcurrentHashMap 为什么不允许key为null?

线程安全的角度去考虑

ConcurrentHashMap 这么设计的原因是为了避免在多线程并发场景下的歧义问题。
也就是说,当一个线程从 ConcurrentHashMap 获取某个 key,如果返回的结果是 null 的时候。
这个线程无法确认,这个 null 表示的是确实不存在这个 key,还是说存在 key,但是 value 为空。
这种不确定性会造成线程安全性问题,而 ConcurrentHashMap 本身又是一个线程安全的集合。
所以才这么设计。

ArrayList 自动扩容机制?

在这里插入图片描述

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

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

相关文章

代码随想录训练营 Day62打卡 图论part11 Floyd 算法 A * 算法

代码随想录训练营 Day62打卡 图论part11 Floyd 算法 例题:卡码97. 小明逛公园 题目描述 小明喜欢去公园散步,公园内布置了许多的景点,相互之间通过小路连接,小明希望在观看景点的同时,能够节省体力,走最短…

C++速通LeetCode中等第3题-字母异位词分组

双指针法:两个指针分别指向左右边界,记录最大面积,由于面积由短板决定,两个指针中较短的短指针向内移动一格,再次记录最大面积, 直到两指针相遇,得出答案。 class Solution { public:int maxAr…

PyQt / PySide + Pywin32 + ctypes 自定义标题栏窗口 + 完全还原 Windows 原生窗口边框特效项目

项目地址: GitHub - github201014/PyQt-NativeWindow: A class of window include nativeEvent, use PySide or PyQt and Pywin32 and ctypesA class of window include nativeEvent, use PySide or PyQt and Pywin32 and ctypes - github201014/PyQt-NativeWindow…

切换淘宝最新npm镜像源

文章目录 一、前言二、切换淘宝最新npm镜像源2.1 查询最新镜像源2.2 两种方式切换npm镜像源2.2.1 通过npm配置2.2.1 通过cnpm配置 三、总结 一、前言 NPM(Node Package Manager),是NodeJs的模块依赖管理工具,用于nodejs模块的安装…

java多线程模拟多个售票员从同一个票池售票

程序功能 这段代码模拟了多个售票员从一个有限的票池中售票的过程。主要功能如下: 票池共有50张票,多个售票员(线程)并发进行售票。 使用同步机制确保线程安全,避免多个售票员同时出售同一张票。 每个售票员不断检查票…

5.内容创作的未来:ChatGPT如何辅助写作(5/10)

引言 在信息爆炸的时代,内容创作已成为连接品牌与受众、传递信息与知识、以及塑造文化与观念的重要手段。随着数字媒体的兴起,内容创作的需求日益增长,对创作者的写作速度和质量提出了更高的要求。人工智能(AI)技术的…

PHP全程可视化防伪溯源一体化管理系统小程序源码

全程可视化,防伪溯源新篇章 —— 揭秘一体化管理系统的力量 🔍 开篇:透视未来,从源头到终端的安心之旅 在这个信息透明化时代,每一件商品都承载着消费者的信任与期待。而“全程可视化防伪溯源一体化管理系统”&#x…

【网络安全 | 代码审计】PHP无参数RCE

未经许可,不得转载。 文章目录 无参数RCE代码审计1、利用Session ID实现无参数RCE2、利用get_defined_vars ()函数实现无参数RCE3、利用getallheaders()实现无参数RCE4、利用getenv()实现无参数RCE5、利用scandir()实现无参数RCE靶场实例无参数RCE 一般情况下,RCE需要通过传…

Nuxt3部署遇到的问题归纳

fetch Headers is not a constructor 和 _fetch is not a function 这两个问题,本质上都是fetch在服务器上无法正常使用的问题,需要检查本地node版本与线上服务器node版本是否一致。否则在依赖安装上会产生依赖版本差异导致应用无法正常运行。 以下是wi…

若依-原理

1.代码生成器 1.1源码分析 代码生成器分为两个部分: 第一部分涉及将业务表结构导入到系统中 第二部分是点击生成按钮,系统将根据表结构生成相应的前后端代码,并提供下载。 1.表结构说明 gen_table:存储业务表的基本信息 &am…

事件循环event loop入门(基于ESP-IDF)

主要参考资料: 事件循环库: https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/api-reference/system/esp_event.html Event Loop 大白话版: https://www.bilibili.com/video/BV1FD4y1j79J/?spm_id_from333.999.0.0&vd_sourcedd284033cd0c4d1f3…

盘点常见网络安全术语(建议收藏)

1、黑帽 为非法目的进行黑客攻击的人,通常是为了经济利益。他们进入安全网络以销毁,赎回,修改或窃取数据,或使网络无法用于授权用户。这个名字来源于这样一个事实:老式的黑白西部电影中的恶棍很容易被电影观众识别&…

在linux用docker部署MySQL失败

Unable to find image mysql:latest locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 128.121.243.107:443: i/o timeout. See docker run --help. 从网上找解决问题一直说是镜像问题,我原来的镜像是从自…

8-----手机机型维修工具助手 功能较全 涵盖解锁 刷机 修复等选项 维修推荐

上图是一款功能较全的维修加密狗。目前可以无限制 任何人使用。看图片可以了解其中涵盖刷机 解锁 修复分区 查看短接图 安装驱动 修复基带等等选项。而且其中有针对各个机型型号的对应功能操作。以及一些rec5.0相关的操作选项。 通过此博文了解 ★★★★★此工具涵盖的一些…

优秀项目经理需必备的四个项目管理最佳技术

项目经理在项目管理过程中,需要具备多种管理思维以确保项目的顺利进行和成功交付。项目经理要有效地管理好项目,确保项目按时、按质、按预算完成,需要特别关注以下四个方面: 1. 明确项目目标与范围 设定清晰目标:与项目…

C++竞赛初阶L1-15-第六单元-多维数组(34~35课)557: T456507 图像旋转

题目内容 输入一个 n 行 m 列的黑白图像,将它顺时针旋转 90 度后输出。 输入格式 第一行包含两个整数 n 和 m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。 接下来 n 行,每行 m 个整数,表示图像的每个像…

OpenCV与AI深度学习 | 实战!利用多模态大模型生成绘本

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:实战!利用多模态大模型生成绘本【文末送书】 🚀 引言 在数字时代,技术与创意的结合不断刷新我们的世界观。…

25届计算机毕业设计选题推荐-图书馆智能选座系统

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 Java实战项目 文章目录 Java实战项目 一、图书馆智能选座系统…

某思CMS V10存在SQL注入漏洞

Fofa: product"魅思-视频管理系统" 框架:ThinkPHP 5,6 1 漏洞分析&复现 位于 /controller/Api.php 控制器中的getOrderStatus 方法POST传入,然后直接拼接了 orderSn 变量到 where 查询中,导致漏洞产生. /** * 查询订单支付状态 */ pub…

猎板PCB大讲堂——全球电子产品中PCB阻燃性能的法规与标准概述

今天猎板PCB来说说PCB的板材的阻燃性!猎板发现有些PCB平台在售的板厂大多为非阻燃系列,而在许多国家和地区,电子产品及其组件,包括印刷电路板(PCB),都必须遵守严格的安全标准,其中包…