【面经总结】Java集合 - Map
Map 概述
Map 架构

HashMap
要点
- 以 散列(哈希表) 方式存储键值对,访问速度快
- 没有顺序性
- 允许使用空值和空键
- 有两个影响其性能的参数:初始容量和负载因子。
- 初始容量:哈希表创建时的容量
- 负载因子:其容量自动扩容之前被允许的最大饱和量
- 不是线程安全的
Java7
数据结构
实现机制:**数组 + 链表,**通过链表解决哈希冲突。
- table:存储 K-V 的数组
- size:容量,初始为 16
- loadFactor:负载因子,默认为 0.75(元素个数超过容量的 75% 会触发自动扩容,扩容为原始的 2 倍)

获取元素 get
- 通过 key 的哈希计算存储位置
- 遍历链表

计算 hash 方式:高16位不变,低16位和高16位做异或
static final int hash(Object key) {int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
计算下标的时候,是使用 & 位操作,而非求余
(n - 1) & hash
优点:能使用32位计算哈希,避免因为高位没有参与下标的计算而碰撞
添加元素 put
- 通过 key 的哈希计算存储位置
- 查找 key 是否存在
- 存在:覆盖 Value
- 不存在:放到桶里 or 插入链表(头插法)

删除元素 remove
找到指定数据并修改链表引用

Java8
- 实现机制:数组 + 链表 + 红黑树
- 当容量达到 64,且元素达到 8 个时会将链表转为红黑树
- 将链表插入方式改为尾插法(解决循环链表)

链表查询复杂度取决于链表长度,为 O(n)。为了降低开销,Java8 中当容量达到 64,且元素达到 8 个时会转为红黑树,降低复杂度为 O(logN)
Java7 使用 Entry 表示数据节点,Java8 使用 Node 和 TreeNode。
LinkedHashMap
在 HashMap 的基础上,维护一个双向链表,实现插入顺序

TreeMap
- 实现机制:红黑树
- 有序(默认为升序)
- Key 需要定义比较逻辑
- 实现 Comparable 接口
- 重写 compareTo() 方法
相关文章:
【面经总结】Java集合 - Map
Map 概述 Map 架构 HashMap 要点 以 散列(哈希表) 方式存储键值对,访问速度快没有顺序性允许使用空值和空键有两个影响其性能的参数:初始容量和负载因子。 初始容量:哈希表创建时的容量负载因子:其容量自动扩容之前被允许的最大…...
CompletableFuture方法介绍及代码示例
CompletableFuture 是 Java 8 引入的一个类,用于支持异步编程。它实现了 Future 接口,并提供了非常强大的功能来处理异步操作。下面是 CompletableFuture 的一些关键内部方法及其详细解释。 基础方法 1. supplyAsync 和 runAsync: - supplyA…...
基于springboot的宠物商城网站
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的宠物商城网站,java项目…...
DM存储ontap系统修改管理IP
存储已配置完成在使用,修改管理ip不会影响生产 旧管理IP新管理IP192.0.2.1/24192.0.10.1/24192.0.2.2/24192.0.10.2/24192.0.2.3/24192.0.10.3/24 旧网关:192.0.2.254 新网关:192.0.10.254 查看现有的管理IP信息 cluster1::> network …...
Web前端商业素材:挖掘价值,释放创意的无限可能
Web前端商业素材:挖掘价值,释放创意的无限可能 在数字化时代,Web前端作为用户与互联网世界交互的桥梁,其重要性不言而喻。而商业素材,作为Web前端设计的重要组成部分,更是承载着品牌形象、传递商业信息的重…...
LeetCode206-反转链表
题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* …...
5000天后的世界
为何可以预见未来 1993年,在互联网的黎明时代,凯文凯利创办了《连线》杂志。他曾经采访过以比尔盖茨、史蒂夫乔布斯、杰夫贝佐斯为代表的一众风云创业家。《连线》杂志是全球发行的世界著名杂志,一直致力于报道科学技术带来的经济、社会变革…...
Photoshop中颜色与色调的调整
Photoshop中颜色与色调的调整 Photoshop中的颜色模式RGB模式灰度模式位图模式索引模式CMYK模式Lab模式 Photoshop中的颜色/色调调整命令颜色/色调调整命令的分类亮度/对比度调整命令色阶命令曲线命令曝光度命令自然饱和度命令色相/饱和度命令色彩平衡命令照片滤镜调整命令通道混…...
【退役之重学Java】终结篇,暂别 Java !
一、为什么退役后要重学 Java 应该说还是对技术抱有热情的,而 Java 是大学时期的主修方向,所以退役的半年之后选择重学 Java,至于此前半年的经历,有机会再给大家讲述吧。 二、重学 Java 的经历 在三月的尾巴,开始重…...
查找——顺序查找和折半查找
查找 关于顺序查找和折半查找,可点击此处进入旧金山大学提供的动画演示网站。 顺序查找 顺序查找又称线性查找。它对于顺序表和链表都是适用的。对于顺序表,可通过数组下标递增来顺序扫描每个元素;对于链表,则通过指针next来…...
Bio-Info每日一题:Rosalind-07-Mendel‘s First Law(孟德尔第一定律 python实现)
🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬 Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初…...
C++ 47 之 函数调用运算符重载
#include <iostream> #include <string> using namespace std;class MyPrint{ public:// 重载小括号() 重载谁operator后就紧跟谁的符号void operator()(string txt){cout << txt << endl;} };class MyAdd{ public:int operator()(int a, int b){retur…...
[Qt的学习日常]--常用控件1
前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、什么是控…...
模型实战(23)之 yolov10 使用总结及训练自己的数据集
yolov10 使用总结及训练自己的数据集 0. yolov10 原理分析 此处参考:https://blog.csdn.net/CVHub/article/details/139204248论文:https://arxiv.org/pdf/2405.14458源码:https://github.com/THU-MIG/yolov10 论文原理分析: 创新: 双标签分配策略 众所周知,标签分配策略…...
AIRNet模型使用与代码分析(All-In-One Image Restoration Network)
AIRNet提出了一种较为简易的pipeline,以单一网络结构应对多种任务需求(不同类型,不同程度)。但在效果上看,ALL-In-One是不如One-By-One的,且本文方法的亮点是batch内选择patch进行对比学习。在与sota对比上…...
欧洲杯“球迷狂欢趴”开启,容声带来“健康养鲜”新理念
6月15日,容声冰箱在深圳举行了异彩纷呈的“欧洲杯养鲜补给站 球迷狂欢趴”系列活动。 容声国内营销总经理韩栋现场发布“以品质领先 为健康养鲜”的主题内容,强调容声将以健康养鲜技术产品的升级迭代,满足用户品质生活需求。 作为有着41年发…...
人工智能对零售业的影响
机器人、人工智能相关领域 news/events (专栏目录) 本文目录 一、人工智能如何改变零售格局二、利用人工智能实现购物体验自动化三、利用人工智能改善库存管理四、通过人工智能解决方案增强客户服务五、利用人工智能分析消费者行为六、利用 AI 打造个性化…...
Spring Boot + EasyExcel + SqlServer 进行批量处理数据
前言 在日常开发和工作中,我们可能要根据用户上传的文件做一系列的处理,本篇文章就以Excel表格文件为例,模拟用户上传Excel文件,讲述后端如何高效的进行数据的处理。 一.引入 EasyExcel 依赖 <!-- https://mvnrepository.com/…...
深入理解指针(四)
目录 1. 回调函数是什么? 2. qsort使用举例 2.1冒泡排序 2.2使用qsort函数排序整型数据 2.3 使用qsort排序结构数据(名字) 2.4 使用qsort排序结构数据(年龄) 3. qsort函数的模拟实现 1. 回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数…...
k-means聚类模型的优缺点
一、k-means聚类模型的优点 1. 简单高效:k-means算法思想简单直观,易于实现。它通过迭代计算样本点与聚类中心之间的距离,并不断调整聚类中心的位置,直至满足终止条件。由于其计算过程相对直接,所以具有较高的执行效率…...
HDMI转VGA转换器硬件设计实战:基于MX9291的电路实现
1. HDMI转VGA转换器的核心价值与应用场景 当你手头有一台只有VGA接口的老显示器,而电脑却只有HDMI输出时,MX9291芯片就是解决这个兼容性问题的钥匙。这种转换需求在企业和教育领域特别常见——很多会议室和教室的投影仪至今仍在使用VGA接口。我去年就帮朋…...
深度解析:智能体认知动力学
引言:智能体认知的变革在人工智能从 "大炼模型" 转向 "大用模型" 的关键时期,张家林的《智能体认知动力学导论:从生成式控制到拓扑几何求解》(2026 年版)如同一颗投入平静湖面的巨石,激…...
WiFi CSI感知技术全攻略:从原理到实践的深度探索
WiFi CSI感知技术全攻略:从原理到实践的深度探索 【免费下载链接】Awesome-WiFi-CSI-Sensing A list of awesome papers and cool resources on WiFi CSI sensing. 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-WiFi-CSI-Sensing 一、技术原理&…...
BGE-M3快速入门:多语言文本相似度分析从零到一
BGE-M3快速入门:多语言文本相似度分析从零到一 1. 引言:从“关键词匹配”到“语义理解” 你有没有遇到过这样的场景?在搜索引擎里输入“苹果”,结果既出现了水果,也出现了手机公司。或者,你想找“如何学习…...
Qwen3.5-35B-A3B-AWQ-4bit镜像免配置优势:无Python依赖冲突,纯净运行环境
Qwen3.5-35B-A3B-AWQ-4bit镜像免配置优势:无Python依赖冲突,纯净运行环境 1. 镜像核心优势 Qwen3.5-35B-A3B-AWQ-4bit镜像最突出的特点是其开箱即用的纯净环境。与传统AI部署方案相比,这个镜像解决了开发者最头疼的Python依赖冲突问题。通过…...
【RK3588 NPU性能调优实战】多线程异步推理YOLOv5,榨干6TOPS算力
1. 为什么你的RK3588 NPU跑不满6TOPS? 第一次在RK3588上跑YOLOv5时,我也被官方宣称的6TOPS算力唬住了。直到亲眼看到npu-smi显示的实际利用率——好家伙,不到30%!这就像买了辆跑车却只能挂一档开。经过两周的折腾,终于…...
Java Eclipse JDK 1.8.0_25安装与配置全指南
1. JDK 1.8.0_25的下载与安装 如果你是刚接触Java开发的新手,可能会被各种版本的JDK搞得一头雾水。别担心,JDK 1.8.0_25(也就是Java 8的一个子版本)至今仍是企业开发中最常用的稳定版本之一。我当年刚开始学Java时,导师…...
从订餐流程到并发编程:Petri网中的‘库所’与‘变迁’到底在模拟什么?
从订餐流程到并发编程:Petri网中的‘库所’与‘变迁’到底在模拟什么? 想象一下,你正在用手机订外卖:选择菜品、下单支付、等待制作、骑手配送——这个看似简单的流程背后,隐藏着一个精妙的系统状态转换模型。这正是Pe…...
【学术干货免费领】200+学术海报模板免费领|科研展示零成本,高效出图不内耗 | 学术会议海报模板,适配国际国内各类学术场合 | 硕博研究生必需,全学科适配,助力科研成果高光出圈
重磅福利来袭!200学术海报模板,全程免费领取,零成本解锁科研展示新方式!适配以下各类科研相关人群:硕博研究生群体包括硕士研究生和博士研究生适用于不同研究阶段:从开题报告撰写到学位论文完成特别适合需要…...
“超节点”的纷争开始了
3月26日,在“2026中关村论坛年会”上,中科曙光发布世界首个无线缆箱式超节点scaleX40。其单节点集成40张GPU,总算力超过28PFLOPS(FP8精度),能够满足万亿参数大模型的训练与推理需求。产品采用标准19英寸箱式…...
