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

Java小白入门教程:HashMap

目录

一、定义

二、作用

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

import java.util.HashMap; // 引入HashMap类

// 创建一个键为String类型,值为Integer类型的HashMap
HashMap<String, Integer> map = new HashMap<String, Integer>(); 

2、添加元素

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

3、获取元素

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

4、修改元素

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

5、删除元素

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

6、检查键是否存在

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

7、检查值是否存在

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

8、获取大小

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

9、遍历HashMap

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

10、清空HashMap

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

五、完整示例

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("香蕉");

        // 遍历HashMap
        System.out.println("修改后的水果库存:");
        for (String fruit : fruitQuantities.keySet()) {
            System.out.println("水果:" + fruit + ",数量:" + fruitQuantities.get(fruit));
        }

        // 获取大小
        System.out.println("库存中水果种类数量:" + fruitQuantities.size());
    }
}


http://www.kler.cn/a/528457.html

相关文章:

  • 90,【6】攻防世界 WEB Web_php_unserialize
  • 药店药品销售管理系统的设计与实现
  • 【3】阿里面试题整理
  • 计算机网络一点事(21)
  • jEasyUI 创建 CRUD 应用
  • 知识库管理如何推动企业数字化转型与创新发展的深层次探索
  • pandas分组
  • Git图形化工具【lazygit】
  • DeepSeek的提示词使用说明
  • 【数据结构】_链表经典算法OJ(力扣/牛客第二弹)
  • 代码随想录——回溯
  • 《数据可视化新高度:Graphy的AI协作变革》
  • Spring MVC消息转换器
  • 如何对系统调用进行扩展?
  • 开启 AI 学习之旅:从入门到精通
  • AI-ISP论文Learning to See in the Dark解读
  • kamailio-auth模块详解【以下内容来源于官网,本文只做翻译】
  • ARM内核:嵌入式时代的核心引擎
  • 深度学习篇---数据存储类型
  • 机器学习优化算法:从梯度下降到Adam及其变种
  • 基于深度学习的输电线路缺陷检测算法研究(论文+源码)
  • FreeRTOS学习笔记2:FreeRTOS的基础知识
  • 42步进电机
  • FPGA| 使用Quartus II报错Top-level design entity ““ is undefined
  • 物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】
  • Two Divisors ( Educational Codeforces Round 89 (Rated for Div. 2) )