首页 > 编程语言 >Java的HashMap用法

Java的HashMap用法

时间:2023-10-03 11:11:25浏览次数:32  
标签:Java HashMap Sites value 用法 键值 put public

一、HashMap了解

  HashMap是Java中常用的集合类之一,它实现了Map接口并继承自AbstractMap类。HashMap使用哈希表来存储键值对,通过将键映射为哈希码来进行高效的插入、查找和删除操作。

以下是HashMap的常见用法和特点:

  1. 键值对:HashMap允许存储任意类型的键和值。可以通过键来查找对应的值,从而实现高效的数据查询操作。

  2. 哈希表:HashMap内部使用哈希表来组织数据。对于每个键,HashMap会先将其哈希为一个整数值,然后根据该值来快速查找对应的值。对于哈希冲突的情况,HashMap使用链表或红黑树来解决。

  3. 空键和空值:HashMap允许使用null作为键和值。当存储null时,哈希表会特殊处理以确保正确的存储和检索。

  4. 线程不安全:HashMap不是线程安全的,如果多个线程同时修改HashMap,可能会导致不一致的结果。如果需要在多线程环境下使用HashMap,可以考虑使用ConcurrentHashMap。

  5. 遍历:可以使用迭代器或者Java 8引入的Stream API来遍历HashMap的键值对。常见的遍历方式包括使用Iterator迭代器遍历或者使用forEach方法结合Lambda表达式进行遍历。

二、常用代码实现

1.创建一个hashmap:

HashMap<Integer, String> Sites = new HashMap<Integer, String>();

2.添加元素:put() 方法

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites);
    }
}

  3.访问元素: get(key) 方法来获取 key 对应的 value

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.get(3));
    }
}

  4.删除元素: remove(key) 方法来删除 key 对应的键值对(key-value)

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.remove(4);
        System.out.println(Sites);
    }
}

  5.删除所有键值对(key-value)可以使用 clear 方法:

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.clear();
        System.out.println(Sites);
    }
}

  6.计算大小:计算 HashMap 中的元素数量可以使用 size() 方法

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.size());
    }
}

7.迭代 HashMap:

  • 可以使用 for-each 来迭代 HashMap 中的元素。
  • 如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法。
public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        // 输出 key 和 value
        for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // 返回所有 value 值
        for(String value: Sites.values()) {
          // 输出每一个value
          System.out.print(value + ", ");
        }
    }
}

 

 

 

 

标签:Java,HashMap,Sites,value,用法,键值,put,public
From: https://www.cnblogs.com/visioning/p/17740899.html

相关文章

  • java断点下载文件(整合多线程)
    技术介绍:断点下载指的是在文件下载过程中,如果下载中断或失败,比如下载到一半的时候停电了、断网了、不小心退出下载界面了等等,下一次进入下载页面可以从中断或失败的位置继续下载,而无需重新开始下载整个文件。 (注意:本文通过本地文件的拷贝来模拟文件传输的断点过程) 核心想法......
  • 基于Java的高校学生综合测评管理系统的设计与实现(亮点:选课、课程评分、各类活动申请
    (高校学生综合测评管理系统)二、我的优势2.1自己的网站网站上传的项目均为博主自己收集和开发的,质量都可以得到保障,适合自己懂一点程序开发的同学使用!2.2自己的小程序(小蔡coding)<imgsrc="https://img-blog.csdnimg.cn/img_convert/3df3eff92652bb0959df5e3d738d05c9.png"......
  • java本地文件多线程拷贝
    简单介绍:本地文件多线程拷贝是指通过多个线程同时进行文件复制操作。传统的文件复制操作往往是串行进行的,当需要复制单个大文件时,复制速度往往会比较慢。而采用多线程进行文件拷贝可以提高效率。通过同时创建多个线程,每个线程负责复制不同的文件或者不同的文件片段,可以充分利用计......
  • 三个Java入门项目
    Java实现简单计算器参考链接......
  • JAVA--异常
    什么是反射?可以从类里面将该类的成员方法成员变量,构造方法的信息给拿出来使用可以获取成员变量,构造方法,成员方法的所有信息.学习反射应该学习如何获取和解剖获取class对象的三种方式在源代码阶段使用Class.forName("全类名");(最常用)在加载阶段使用A.class(一......
  • Java---异常
    14.1概念在日常编码中或多或少都会现一些问题,这些问题有的是错误和有的是异常(不正常)。日常编码这种问题分为两类:1、错误Error2、异常Exception错误在jvm,硬件层面报出的问题异常是代码运行层面bug:1、编码语法错误(很好解决)2、运行时异常这种异常也好解决,根据提示去做修......
  • java对浮点数保留合适的位数
    importjava.text.DecimalFormat;publicclassMain{publicstaticvoidmain(String[]args){doublenumber=3.1415926;DecimalFormatdf=newDecimalFormat("#.0#");Stringformatted;if(nu......
  • Java面试突击题库
                 ......
  • java——mysql随笔——SQL优化&锁
               插入数据SQL优化:              主键优化:                                    order  by优化:       ......
  • Java基础:meta-info.md文件的作用
    作用概述meta-info.md文件通常是一个用于提供关于软件包或项目的元信息的文本文件。它可以包含各种类型的信息,具体取决于项目的需求和约定。一些常见的元信息包括:项目说明:描述项目的目的、功能、特点等。这可以是一个简短的描述或详细的文档。版本信息:指定软件包或项目的版本号、......