Java小白入门教程:HashMap

devtools/2025/2/2 7:10:29/

目录

一、定义

二、作用

1、存储键值对

2、快速查找

3、动态扩容

三、使用场景

1、当你需要根据键快速查找值时

2、当你不需要保持元素的顺序时(HashMap不保证元素的顺顺序)。

3、当你需要存储大量的键值对,并且频繁地进行插入和删除操作时。

四、语法及示例

1、创建HashMap

2、添加元素

3、获取元素

4、修改元素

5、删除元素

6、检查键是否存在

7、检查值是否存在

8、获取大小

9、遍历HashMap

10、清空HashMap

五、完整示例


一、定义

        HashMap是Java中的一个类,它实现了Map接口,用于存储键值对(key-value pairs)。每个键值对被称为一个条目(entry)。HashMap内部使用哈希表来存储数据,这使得它可以非常快速地检索数据。

二、作用

1、存储键值对

        你可以将一个对象作为键(key)来存储另一个对象作为值(value)

2、快速查找

        通过键来快速查找对应的值

3、动态扩容

        当HashMap中的条目数量达到一定比例时,它会自动扩容以保持操作的高效性。

三、使用场景

1、当你需要根据键快速查找值时

2、当你不需要保持元素的顺序时(HashMap不保证元素的顺顺序)。

3、当你需要存储大量的键值对,并且频繁地进行插入和删除操作时。

四、语法及示例

1、创建HashMap

java">import java.util.HashMap; // 引入HashMap类// 创建一个键为String类型,值为Integer类型的HashMap
HashMap<String, Integer> map = new HashMap<String, Integer>(); 

2、添加元素

java">map.put("苹果", 10); // 添加一个键值对,键为"苹果",值为10
map.put("香蕉", 5); // 添加另一个键值对

3、获取元素

java">Integer apples = map.get("苹果"); // 通过键获取值

4、修改元素

java">map.put("苹果", 15); // 修改键为"苹果"的值

5、删除元素

java">map.remove("苹果"); // 删除键为"苹果"的键值对

6、检查键是否存在

java">boolean hasApples = map.containsKey("苹果"); // 检查是否包含键为"苹果"的键值对

7、检查值是否存在

java">boolean hasValue5 = map.containsValue(5); // 检查是否包含值为5的键值对

8、获取大小

java">int size = map.size(); // 获取HashMap的大小

9、遍历HashMap

java">for (String key : map.keySet()) {System.out.println("键: " + key + ", 值: " + map.get(key)); // 遍历键并打印键值对
}

10、清空HashMap

java">map.clear(); // 清空HashMap中的所有键值对

五、完整示例

java">import java.util.HashMap;public class Main {public static void main(String[] args) {HashMap<String, Integer> fruitQuantities = new HashMap<String, Integer>();// 添加元素fruitQuantities.put("苹果", 10);fruitQuantities.put("香蕉", 5);// 输出所有元素System.out.println("水果库存:" + fruitQuantities);// 修改元素fruitQuantities.put("苹果", 15);// 删除元素fruitQuantities.remove("香蕉");// 遍历HashMapSystem.out.println("修改后的水果库存:");for (String fruit : fruitQuantities.keySet()) {System.out.println("水果:" + fruit + ",数量:" + fruitQuantities.get(fruit));}// 获取大小System.out.println("库存中水果种类数量:" + fruitQuantities.size());}
}


http://www.ppmy.cn/devtools/155373.html

相关文章

基于Scrapy采集豆瓣电影Top250的详细数据

基于Scrapy采集豆瓣电影Top250的详细数据 Scrapy 官方文档:https://docs.scrapy.org/en/latest/豆瓣电影Top250官网:https://movie.douban.com/top250写在前面 实验目的:基于Scrapy框架采集豆瓣电影Top250的详细数据。 电脑系统:Windows 使用软件:PyCharm、Navicat Python…

【4. C++ 变量类型详解与创新解读】

本章目录: 前言什么是变量&#xff1f;C 基本变量类型1. 基本类型2. 扩展类型 自动类型转换与强制类型转换自动类型转换强制类型转换 声明与定义声明定义 左值与右值结语 前言 在C中&#xff0c;变量是程序存储数据的基本单元。变量的定义和使用涉及多种类型和规则&#xff0c…

深度学习编译器的演进:从计算图到跨硬件部署的自动化之路

第一章 问题的诞生——深度学习部署的硬件困境 1.1 计算图的理想化抽象 什么是计算图&#xff1f; 想象你正在组装乐高积木。每个积木块代表一个数学运算&#xff08;如加法、乘法&#xff09;&#xff0c;积木之间的连接代表数据流动。深度学习框架正是用这种"积木拼接…

深入剖析 HTML5 新特性:语义化标签和表单控件完全指南

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…

Spring AOP 入门教程:基础概念与实现

目录 第一章&#xff1a;AOP概念的引入 第二章&#xff1a;AOP相关的概念 1. AOP概述 2. AOP的优势 3. AOP的底层原理 第三章&#xff1a;Spring的AOP技术 - 配置文件方式 1. AOP相关的术语 2. AOP配置文件方式入门 3. 切入点的表达式 4. AOP的通知类型 第四章&#x…

Go学习:Go语言中if、switch、for语句与其他编程语言中相应语句的格式区别

Go语言中的流程控制语句逻辑结构与其他编程语言类似&#xff0c;格式有些不同。Go语言的流程控制中&#xff0c;包括if、switch、for、range、goto等语句&#xff0c;没有while循环。 目录 1. if 语句 2. switch语句 3. for语句 4. range语句 5. goto语句&#xff08;不常用…

Spring WebFlux揭秘:下一代响应式编程框架,与Spring MVC有何不同?

Spring WebFlux和Spring MVC都是Spring家族里的成员&#xff0c;它们都能帮助我们开发Web应用&#xff0c;但工作方式有所不同。 可以把Spring MVC想象成一个服务员&#xff0c;每次有客人&#xff08;请求&#xff09;来&#xff0c;它就会专门找一个服务员&#xff08;线程&a…

No.8十六届蓝桥杯备战|C++输入输出|printf|scanf(C++)

scanf和printf scanf() 和 printf() 是属于C语⾔的库函数&#xff0c;C是兼容C语⾔的&#xff0c;所以C中只要正确包含头⽂件也可以正常使⽤这两个函数。⽽且这两个函数在算法竞赛题⽬中使⽤的⾮常频繁&#xff0c;尤其是在输出格式控制中。 printf printf() 函数原型如下&a…