当前位置: 首页 > news >正文

[Java 基础]HashMap

HashMap 是 Java Collections Framework 中的一个重要数据结构,它实现了 Map 接口。它的核心功能是存储键值对(key-value pairs),并且通过键来快速查找、插入和删除对应的值。

你可以把它想象成一个字典或者电话簿

  • 键(Key) 就像电话簿里的“姓名”,它是唯一的。
  • 值(Value) 就像电话簿里的“电话号码”,一个姓名对应一个电话号码。

HashMap 的特点:

  1. 存储的是 key-value 结构
  2. 允许 null 键和 null 值
  3. 基于哈希表实现(数组+链表/红黑树)

结构示意请看 VCR:https://visualgo.net/en/hashtable

HashMap 的底层实现原理:

创建

import java.util.HashMap;HashMap<String, Integer> map = new HashMap<>();

常用方法

方法描述
public V put(K key, V value)向 hashMap 中添加键值对
public V get(Object key)根据 key 获取到对应的值
public int size()获取 hashMap 中的键值对个数
public boolean isEmpty()判断 hashMap 是否为空
public V remove(Object key)删除指定 key 的键值对
public Set keySet()返回 hashMap 中所有的 key 组成的一个视图

和其他容器的对比

特性ArrayListLinkedListHashSetHashMap
是否保持插入顺序
是否允许元素重复不允许 key 重复
查找效率O(n)(遍历查找)O(n)(遍历查找)O(1)(哈希查找)O(1)(哈希查找)
适用场景索引查找频繁插入、删除去重、快速查找存储键值映射

更多关于 HashMap 的信息可以查阅 Oracle 的 Java Doc 或查看源码:

https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

相关文章:

  • Element Plus el-button实例类型详解
  • 什么是数字签名(ECDSA)?
  • 非阻塞 IO
  • Java面试题030:一文深入了解MySQL(2)
  • 将文档转为数据集
  • FPGA内部资源介绍
  • tf serving和torch serve哪个耗时更低
  • 数据结构与算法总概
  • 鸿蒙 Grid 与 GridItem 深度解析:二维网格布局解决方案
  • 操作系统的概述之二
  • 探索钉钉生态中的宜搭:创建与分享应用的新视界
  • SpringMVC系列(六)(Restful架构风格(中))
  • 每日算法刷题Day40 6.27:leetcode前缀和3道题,用时1h20min
  • 鸿蒙5:布局组件
  • Linux环境安装Redis的多种方式分析
  • [Java 基础]LinkedList
  • 矩阵的条件数(Condition Number of a Matrix)
  • FPGA产品
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(二)- 职位数据清洗与预处理
  • 鸿蒙5:ArkTS基本介绍