Java中Map.Entry详解

2023-11-13

关于HashMap的详细介绍请参考Java基础-HashMap集合

1.Map.Entry简介

Map是java中的接口,Map.Entry是Map的一个内部接口

Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry

Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法

2. 从entrySet()方法解释Map.Entry

set<Map,Entry<K,V>> entrySet() 将Map集合转换成set集合
假设现在有一个Map集合,如下所示
map集合

key value
1 zhangsan
2 lisi
3 wangwu
4 zhaoliu

Set set=map1.entrySet();
set集合对象****中的每个元素都是Entry键值对

1=zhangsan
2=lisi
3=wangwu
4=zhaoliu

注意:Map集合通过entrySet()方法转换成的这个set集合,set集合中元素的类型是Map.Entry<K,V>
Map.Entry和String一样,都是一种类型的名字,只不过Map.entry是静态内部类,是Map中的

我们可以深入HashMap的源码中看到

static class Node<K,V> implements Map.Entry<K,V> {
        final int hash;
        final K key;
        V value;
        Node<K,V> next;

Node<K,V>实现了Entry接口,Entry接口中K表示key,即键,V表示value,即值。Entry即Node是Map集合中的一个对象元素,而Map集合正是由一个个Entry即Node对象所构成
正是因为Node实现了Entry接口,所以使用Entry的时候也可以使用其getValue()和getKey()方法
具体结构如图所示:

在这里插入图片描述

2. 使用Map.Entry遍历Map集合

public static void main(String[] args) {
    Map<Integer,String> maps=new HashMap<Integer,String>();
    maps.put(3,"张飞");
    maps.put(2,"关羽");
    maps.put(4,"赵云");
    maps.put(1,"刘备");
    maps.put(5,"马超");
    Set<Map.Entry<Integer,String>> sets=maps.entrySet();
    for(Map.Entry<Integer,String> entry:sets){
        System.out.println("key="+entry.getKey()+" value="+entry.getValue());
    }
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中Map.Entry详解 的相关文章

  • Junit Mockito 测试一切

    我现在正在寻找更多时间但没有结果 请帮忙 这是我要测试的课程 public class DBSelectSchema extends Database private static final Logger LOG Logger getLo
  • 术语“引用”的起源,如“通过引用传递”

    Java C 语言律师喜欢说他们的语言按值传递引用 这意味着 引用 是调用函数时复制的对象指针 同时 在 C 中 以及 Perl 和 PHP 中更动态的形式 引用是其他名称 或动态情况下的运行时值 的别名 我对这里的词源感兴趣 参考 一词的
  • 使用 google-api-java-client 的 2 足 OAuth

    有谁知道如何将 2 legged OAuth 与 google api java client 一起使用 我正在尝试访问 Google Apps 配置 API 以获取特定域的用户列表 以下不起作用 HttpTransport transpo
  • 向 JList 添加滚动条? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何将 JList 添加到 JScrollPane 把你的JList in a JScrollPane JScrollPane scrol
  • Maven 2 未运行 Junit 4 测试

    我在确保运行 Junit4 测试时遇到问题 同样的问题也被报告在https stackoverflow com questions 2021771 sort newest sort top https stackoverflow com q
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 在 SWT 中单击鼠标触发事件?

    在SWT中 对于MouseListener接口 可用的方法有mouseUp mouseDown and mouseDoubleClick 如何根据用户点击触发事件 我们可以通过结合来做到这一点mouseUp and mouseDown 但没
  • 处理 ANTLR 4 中的错误

    遵循后接受的答案 https stackoverflow com a 18137301 2279200的指示处理 ANTLR4 中的错误 https stackoverflow com q 18132078 2279200问题 我遇到了以下
  • 在 Java Swing 元素中使用 HTML 样式是不好的做法吗?

    使用 HTML 设置 Swing 元素的样式被认为是不好的做法吗 举个例子 如果我想让标签变大并变红一次 我有两个选择 使用 API 调用 JLabel label new JLabel This is a title label setF
  • Spring Boot 多部分文件始终为 null

    我正在使用 Spring Boot version 1 4 0 RC1 和 Spring Boot Stormpath 1 0 2 我正在尝试使用分段文件上传 但控制器中的 MultipartFile 始终为空 当我使用 RequestPa
  • Java 空值检查

    我有一个thread1 if object null object play 和另一个thread2可以写null into object随时参考 我将同时运行这些线程 我知道thread2可以重写object后参考null检查并会抛出Nu
  • 将字符串转换为字符并按降序排序(ascii)

    我正在创建一个程序 该程序将使用户输入整数 一个接一个 存储在数组中并按降序显示整数 该程序还要求用户输入一个字符串 使用以下命令将其转换为字符string toCharArray 我已经正确地按降序显示整数 问题是我不知道如何按降序显示字
  • Visual Studio Code - Java 类路径不完整。只会报告语法错误

    在使用 python 获得了丰富的经验之后 我正在使用 java 迈出第一步 我正在运行的脚本是一个简单的 Java Swing Gui 它可以从命令行和 VS Code 中正常编译和运行 为了设置 java 调试环境 我使用 github
  • 当通过 Map.put(K, V) 添加值时,是否必须通过 Map.get(K) 返回相同的实例?

    假设您有以下代码 Map
  • Java XML 解析器添加不必要的 xmlns 和 xml:space 属性

    我在 Windows 10 上使用 Java 11 AdoptOpenJDK 11 0 5 2019 10 15 我正在解析一些旧版 XHTML 1 1 文件 这些文件采用以下一般形式
  • 使用 InputStream 通过 TCP 套接字接收多个图像

    每次我从相机捕获图像时 我试图将多个图像自动从我的 Android 手机一张一张地发送到服务器 PC 问题是read 函数仅在第一次时阻塞 因此 从技术上讲 只有一张图像被接收并完美显示 但在那之后当is read 回报 1 该功能不阻塞
  • Jackson 的 ObjectMapper 和 SQL 中的 RowMapper

    我们正在使用对象映射器 当将 ObjectMapper 与 RowMapper 一起使用时 是否应该在每个 mapRow 内部 如下所示 声明它 还是在 mapRow 外部声明为类公共成员 我认为根据本文 它应该作为公共类成员在外部 我应该
  • 用 lambda 表达式替换匿名函数

    我在 Java 8 映射操作中传递一个函数 Intellij 告诉我它可以用 lambda 表达式替换 但我不知道如何在不创建中间对象结构的情况下做到这一点 这就是我所做的 List
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种

随机推荐

  • leetCode Q3:Longest Substring Without Repeating Characters(java)

    1 题目链接 https leetcode com problems longest substring without repeating characters description 2 题目内容 中文版 给一个字符串 要求返回最长的不
  • 详解用户画像

    01画像简介 用户画像 即用户信息标签化 通过收集用户的社会属性 消费习惯 偏好特征等各个维度的数据 进而对用户或者产品特征属性进行刻画 并对这些特征进行分析 统计 挖掘潜在价值信息 从而抽象出用户的信息全貌 如图1 1所示 用户画像可看作
  • 史上最全C/C++面试八股文,一文带你彻底搞懂C/C++面试!

    前述 本文初衷是为了总结本人在各大平台看到的面经 我会在本文持续更新我所遇到的一些C 面试问题 如有错误请一定指正我 目录 1 讲一讲封装 继承 多态是什么 2 多态的实现原理 实现方式 是什么 以及多态的优点 特点 3 final关键字的
  • PHP实现微信公众号主动推送消息

    这篇文章主要介绍了php实现微信公众号主动推送消息的方法 PHP版微信公共平台消息主动推送 突破订阅号一天只能发送一条信息限制 需要的朋友可以参考下 通过学习借鉴朋友的实现方法进行整理 实现了PHP版的微信公共平台消息主动推送 分享给大家供
  • Kafka的数据消费过程以及消息不丢失机制

    文章目录 Kafka数据写入流程 Kafka数据消费流程 消息不丢失机制 broker数据不丢失 生产者数据不丢失 消费者数据不丢失 Kafka数据写入流程 执行流程 生产者获取对应分区的 leader 位置 发数据给leader brok
  • 区别VAN与GAN,LSGAN、WGAN、WGAN-GP、CGAN

    训练 稳定 样本的 多样性 和 清晰度 似乎是GAN的 3大指标 David 9 VAE与GAN 聊到随机样本生成 不得不提VAE与GAN VAE用KL divergence和encoder decoder的方式逼近真实分布 但这些年GAN
  • String、StringBuffer、StringBuilder的区别——(面试题)

    String StringBuffer StringBuilder的区别 String StringBuffer StringBuilder 执行速度 最差 其次 最高 线程安全 线程安全 线程安全 线程不安全 使用场景 少量字符串操作 多
  • Go开发工具

    http studygolang com articles 1678 1 4 Go开发工具 本节我将介绍几个开发工具 它们都具有自动化提示 自动化fmt功能 因为它们都是跨平台的 所以安装步骤之类的都是通用的 LiteIDE LiteIDE
  • 【ML on Kubernetes】第 3 章:探索 Kubernetes

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • SCPI 语言简介

    电子负载中需要用到 所以记录下 来源是德科技 SCPI 可编程仪器的标准命令 是一种基于 ASCII 的仪器编程语言 供测试和测量仪器使用 SCPI 命令采用分层结构 也称为树系统 相关命令归组于共用结点或根 这样就形成了子系统 下面一部分
  • FIO的基本概念

    对于FIO 其是一个10测试工具 可以运行在多种操作系统上 用来测试本地磁盘 网络存储等的性能 FIO有以下基本概念 大家可以先了解一下 1 基本概念 I O类型 顺序读 顺序写 随机读 随机写 块大小 读写时规定的block size 一
  • Keras入门(二)模型的保存、读取及加载

    本文将会介绍如何利用Keras来实现模型的保存 读取以及加载 本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络 DNN 模型 模型的结构示意图如下 具体的模型参数可以参考文章 Keras入门 一 搭建深度神经网络 DNN
  • Mathematica定义函数

    Mathematica定义函数时有点特殊 需在变量后加一个下划线 具体见下面示例 上面示例中定义函数时用的是 其实也可以用 这两个有什么区别呢 具体见下面示例便知 总结 Mathematica定义函数时 变量后面应加一个下划线 然后尽量用
  • DCDC电源负载瞬态响应分析

    DCDC电源负载瞬态响应分析 负载瞬态响应 输出电压过冲现象及其产生原因 如何改善输出电压过冲 负载瞬态响应 当负载电流突然增大或减小时 在us或ns时间内发生较大变化 变化量设置为80 满载输出电流 输出电压的瞬态响应 输出电压过冲现象及
  • springboot处理 json 转换成 实体对象

    可以使用 RequestBody PostMapping add public Result add RequestBody LogisticsDemand demand if demand getRefreshTime null dema
  • Latex-遇到的各种公式和特殊字符

    用的是OverLeaf Sigmoid的写法 begin equation sigma x frac 1 1 e x end equation Softmax的写法 begin equation sigma t i frac e t i s
  • 在Linux(Ubuntu) 中安装mysql服务器并开启远程访问

    在以linux为内核的有centos和ubuntu 推荐大家使用ubuntu 因为使用的人数多 出现了问题方便及时解决问题 一 创建一个云主机 ssh root 39 107 227 105 The authenticity of host
  • 华为OD机试(JAVA)真题II

    华为题库已换 后续会令启专栏更新最新版 介意的勿订阅 介意的勿订阅 介意的勿订阅 华为机试有三道题目 第一道和第二道属于简单或中等题 分值为100分 第三道为中等或困难题 分值为200分 总分为400分 150分钟考试时间 之前通过为150
  • vs2019MSDN(离线帮助文档)的下载与使用

    像这样搬砖的事情最烦了 在这里给大家总结一下步骤 本文参考 https blog csdn net weixin 41234001 article details 103308659 MSDN是vs的一个离线帮助文档 相当于帮助手册 1 检
  • Java中Map.Entry详解

    关于HashMap的详细介绍请参考Java基础 HashMap集合 1 Map Entry简介 Map是java中的接口 Map Entry是Map的一个内部接口 Map提供了一些常用方法 如keySet entrySet 等方法 keyS