首页 > 编程语言 >今天聊下Java中的HashMap---Java中用的就很多的集合框架

今天聊下Java中的HashMap---Java中用的就很多的集合框架

时间:2022-10-22 11:03:58浏览次数:48  
标签:map Java HashMap sites value --- key println

先说下HashMap的定义

HashMap是一个散列表,存储的内容是键值对(key-value)映射。

HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。最后一点和Hashtable不同,Hashtable是支持线程同步的。

HashMap是无序的,不会记录插入的顺序。HashMap继承于 AbstractMap,实现了Map/Cloneable/java.io.Serializable

HashMap的key与value类型可以相同也可以不同:可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。例如:Map<Integer,String> map = Map.of(1,"A",2,"B",3,"C");

 HashMap中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。基本类型对应的包装类表如下:

boolean  Boolean

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

HashMap类位于 java.util包中,使用前需要引入

import java.util.HashMap 在使用HashMap时,工具会自动引入


接下来,说下HashMap的访问元素: 可以使用 get(key)方法来获取key对应的value value = map.get(key)

删除元素 可以使用remove(key)方法来删除key对应的键值对(key-value) 然后生成的数组是无序的

删除所有键值对 使用 clear方法

计算HashMap的大小 可以使用size()方法 map.size() 这里size也是key和value的个数

迭代HashMap 使用循环 for-each来迭代HashMap中的元素;如果只想获取key,可以使用keyset()方法;如果只想获取value,可以使用values方法


接下来,我们来看实例吧:

1.获取HashMap的key和value值

//创建HashMap的对象 sites

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

        //添加键值对

        sites.put(1,"Google");

        sites.put(2,"Baidu");

        sites.put(3,"Zhihu");

        sites.put(4,"JD");

        System.out.println(sites); //key-value键值对

        //根据key值获取对应的value值

        String key1 = sites.get(3);//当key为3时,找到map中对应的value值

        //获取所有的key值,可以将所有的key值弄成数组

        System.out.println("HashMap的key值");

        for (int key:sites.keySet()

             ) {

            System.out.println(key);

        }

结果:

{1=Google, 2=Baidu, 3=Zhihu, 4=JD}

HashMap的key值

1

2

3

4

HashMap的value值

Google

Baidu

Zhihu

JD


2.在一个循环中获取key和value值,需要知道key和value的类型

//获取所有的values值

        System.out.println("HashMap的value值");

        for (String str:sites.values()

             ) {

            System.out.println(str);

        }

        System.out.println("-----------------------");

        //还可以通过一个循环,获取HashMap的key和value值 key为int值,value可以通过sites.get(i)获得

        for (int i:sites.keySet()

             ) {

            System.out.println("key的值为: " + i + "values值为: " + sites.get(i));

        }

结果:

key的值为: 1values值为: Google

key的值为: 2values值为: Baidu

key的值为: 3values值为: Zhihu

key的值为: 4values值为: JD


3.删除HashMap中的元素

//创建String的key和String的value

        HashMap<String,String> map = new HashMap<String,String>();

        map.put("one","Google");

        map.put("two","Baidu");

        map.put("Three","Zhihu");

        map.put("Four","JD");

        System.out.println(map);

        map.remove("one");

        System.out.println(map); //无序的,但是删除了 one = Google

结果:

{one=Google, Four=JD, two=Baidu, Three=Zhihu}

{Four=JD, two=Baidu, Three=Zhihu}

4.清除HashMap

map.clear();

System.out.println(map); //HashMap中的所有元素都删除

结果:

{}


今天先到这里吧

今天聊下Java中的HashMap---Java中用的就很多的集合框架_测试

标签:map,Java,HashMap,sites,value,---,key,println
From: https://blog.51cto.com/u_11894/5785716

相关文章

  • 好玩的文字流程图:flowchart-fun
    流程图/思维导图让工作变得高效。但是,绘制流程图/思维导图的方式能不能更高效一些呢?比如,随手敲字,就自动生成简洁明了的可伸缩矢量图。现在,一款名叫flowchart.fun的网页......
  • HTML标签-综合案例-分析和HTML标签-综合案例-实现
    HTML标签-综合案例-分析链接标签:a:定义一个超链接属性:href:指定访问资源的URL(统一资源定位符)target:指定打开资源的方式......
  • HMZK2【Zookeeper Java API】
    1Curator介绍原生zookeeperAPI的不足连接对象异步创建,需要开发人员自行编码等待连接没有自动重连超时机制watcher一次注册生效一次不支持递归创建树形节点curato......
  • 1743E - FTL
    1743E-FTLAtanytime,wehavethreepossiblechoices:waitandshootthefirstlaser,thesecondlaserandbothlasers.Sometimesitmakessensetowaitto......
  • Logstash 入门实战(3)--input plugin 介绍
    本文主要概述Logstash的一些最受欢迎的输入插件,以大致了解Logstash的用途;相关的环境及软件信息如下:CentOS 7.9、Logstash8.2.2。1、什么是Logstashinput插件Log......
  • 小孩的游戏 - 2021数据结构 排序和选择实验题
    小孩的游戏-2021数据结构排序和选择实验题pre做都做了,干脆发上来算了:D题目分析算法与数据结构实验题5.18小孩的游戏★实验任务一群小孩子在玩游戏,游戏......
  • 前端Vue2-Day56
    消息订阅与发布pubsub:实现任意组件间通信使用步骤:①安装pubsub-js:npmipubsub-js②引入:importpubsubfrom'pubsub-js'③订阅消息:使用pubsub自带的subscribe方法......
  • java 武侠格斗生级版 javabean
    packagetest_3;importjava.util.Random;publicclassGame{//属性privateStringname;privateintblood;privatechargender;privateStringface;//长相是随机......
  • 2022-2023-1 20221414《计算机基础和程序设计》第八周学习总结
    作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08作业目标:面向对象,面向过程,顶......
  • 力扣121(java&python)-买卖股票的最佳时机(简单)
    题目:给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。......