广告
返回顶部
首页 > 资讯 > 精选 >Java高级之HashMap中的entrySet()方法怎么使用
  • 484
分享到

Java高级之HashMap中的entrySet()方法怎么使用

2023-07-05 14:07:28 484人浏览 八月长安
摘要

本篇内容主要讲解“Java高级之HashMap中的entrySet()方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java高级之HashMap中的entrySet()方法怎么使用”

本篇内容主要讲解“Java高级之HashMap中的entrySet()方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java高级之HashMap中的entrySet()方法怎么使用”吧!

基本使用

entrySet()方法得到HashMap中各个键值对映射关系的集合

然后Map.Entry中包含了geTKEy()和getValue()方法获取键和值。

示例:

public class Demo {    public static void main(String[] args) {        Map<String, String> map = new HashMap<>();        map.put("abc", "123");        map.put("efg", "456");        // 使用增强型for遍历循环Map集合        Set<Map.Entry<String, String>> entrySet = map.entrySet();        for (Map.Entry<String, String> entry : entrySet) {            System.out.println(entry.getKey() + "->" + entry.getValue());        }    }}

原理剖析

HashMap的entrySet()方法返回Set<Map.Entry<String, String>>,那么为什么entrySet()方法可以得到键值对映射集合呢?

    public Set<Map.Entry<K, V>> entrySet() {        Set<Map.Entry<K, V>> es;        return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;    }

其实entrySet()方法的原理和keySet()方法、values()方法的原理是一致的。

entrySet()方法的源码注释如下:

        public Set<Map.Entry<K, V>> entrySet() {        Set<Map.Entry<K, V>> es;        return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;            }

那么看看编译后生成的字节码文件Demo.class

public class Demo {    public Demo() {    }     public static void main(String[] args) {        Map<String, String> map = new HashMap();        map.put("abc", "123");        map.put("efg", "456");        Set<Entry<String, String>> entrySet = map.entrySet();        Iterator var3 = entrySet.iterator();         while(var3.hasNext()) {            Entry<String, String> entry = (Entry)var3.next();            System.out.println((String)entry.getKey() + "->" + (String)entry.getValue());        }     }}

能够获取到元素是通过迭代器Iterator遍历得来的,所以entrySet()方法能有键值对的映射集合,是因为iterator()方法。

那么iterator()方法是哪里的呢?

在entrySet()方法中使用new实例化了一个EntrySet类

Java高级之HashMap中的entrySet()方法怎么使用

查看EntrySet类源码,里面有个iterator()方法,字节码文件中调用的就是该iterator()方法

Java高级之HashMap中的entrySet()方法怎么使用

在该方法的return语句中又实例化了EntryIterator类作为返回值,是一个迭代器,查看EntryIterator类的源码,只有一个next()方法

Java高级之HashMap中的entrySet()方法怎么使用

该方法被调用返回的类型就是Map.Entry<K, V>,而得到的结果是nextnode()方法的返回值。

Java高级之HashMap中的entrySet()方法怎么使用

nextNode()方法的作用就是返回下一个结点。

而Entry是Map的内部接口,该Entry接口有几个方法可以设置或得到键值。

Java高级之HashMap中的entrySet()方法怎么使用

所以能够通过entry.getKey()和entry.getValue()方法获取到键和值。

并且Node<K, V>是Map.Entry<K, V>的实现类。

Java高级之HashMap中的entrySet()方法怎么使用

到此,相信大家对“Java高级之HashMap中的entrySet()方法怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Java高级之HashMap中的entrySet()方法怎么使用

本文链接: https://www.lsjlt.com/news/352568.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java高级之HashMap中的entrySet()方法怎么使用
    本篇内容主要讲解“Java高级之HashMap中的entrySet()方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java高级之HashMap中的entrySet()方法怎么使用”...
    99+
    2023-07-05
  • Java高级之HashMap中的entrySet()方法使用
    目录基本使用原理剖析总结基本使用 entrySet()方法得到HashMap中各个键值对映射关系的集合。 然后Map.Entry中包含了getKey()和getValue()方法获取...
    99+
    2023-03-22
    Java HashMap Java entrySet()方法 Java HashMap entrySet()方法
  • HashMap方法之Map.getOrDefault()怎么使用
    本篇内容介绍了“HashMap方法之Map.getOrDefault()怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HashMap...
    99+
    2023-07-05
  • ​Java中Map的entrySet()怎么使用
    在Java中,使用entrySet()方法可以获取Map中的所有键值对。该方法返回一个Set对象,其中K是键的类型,V是值的类型。 ...
    99+
    2023-10-23
    ​Java
  • java中Hashmap的get方法使用
    目录java中Hashmap的get方法举例HashMap中get方法的原理1、首先向get()方法中传递一个key3、在get()方法中调用getNode(hash,key)方法4...
    99+
    2022-11-12
  • Java使用entrySet方法获取Map集合中的元素
    在Java中,可以使用entrySet()方法获取Map集合中的元素。entrySet()方法返回一个包含Map.Entry对象的Set集合。Map.Entry对象表示Map中的键值对。每个Map.Entry对象都包含一个键和一个值。以...
    99+
    2023-08-09
    Java
  • java高级用法之JNA中的Structure
    目录简介native中的structStructure特殊类型的Structure结构体数组作为参数结构体数组作为返回值结构体中的结构体结构体中的数组结构体中的可变字段结构体中的只读...
    99+
    2022-11-13
  • java高级用法之JNA中的Function
    目录简介function的定义Function的实际应用总结简介 在JNA中,为了和native的function进行映射,我们可以有两种mapping方式,第一种是interfac...
    99+
    2022-11-13
  • java高级用法之JNA中使用类型映射
    目录简介类型映射的本质TypeMapperNativeMapped总结简介 JNA中有很多种映射,library的映射,函数的映射还有函数参数和返回值的映射,libary和函数的映射...
    99+
    2022-11-13
  • java高级用法之JNA中的回调问题怎么解决
    今天小编给大家分享一下java高级用法之JNA中的回调问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简介什么是c...
    99+
    2023-06-30
  • Java中ModelMapper的高级使用方法有哪些
    本篇内容介绍了“Java中ModelMapper的高级使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ModelMapper 高...
    99+
    2023-06-29
  • java高级用法之JNA中的回调问题
    目录简介JNA中的Callbackcallback的应用callback的定义callback的获取和应用在多线程环境中使用callback总结简介 什么是callback呢?简单点...
    99+
    2022-11-13
  • Laravel中where的高级使用方法
    这篇文章主要介绍了Laravel中where的高级使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有时候项目中需要进行多个字段搜索就可以用到此方法在Larav...
    99+
    2023-06-08
  • java反射之invoke方法怎么使用
    Java反射中的invoke方法用于调用指定对象的方法。它的使用方式如下:1. 获取Class对象:首先需要获取到要调用方法的对象的...
    99+
    2023-08-18
    java invoke
  • Java之Mybatis的二级缓存怎么使用
    本文小编为大家详细介绍“Java之Mybatis的二级缓存怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java之Mybatis的二级缓存怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。缓存的概述...
    99+
    2023-07-05
  • Java之使用HashMap.values()方法出错怎么解决
    本篇内容介绍了“Java之使用HashMap.values()方法出错怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HashMap....
    99+
    2023-07-05
  • Java中的equalsIgnoreCase()方法怎么使用
    equalsIgnoreCase()方法是用来比较两个字符串是否相等,不区分大小写。使用方法如下:```javaString str...
    99+
    2023-09-12
    Java
  • Java中的clone方法怎么使用
    在Java中,`clone()`方法是用来创建对象的一个浅拷贝副本。要使用`clone()`方法,需要遵循以下步骤:1. 首先,在要...
    99+
    2023-09-15
    Java
  • java中的indexOf()方法怎么使用
    在Java中,indexOf()方法用于查找指定字符或字符串在字符串中第一次出现的位置。它的语法如下:```javapublic i...
    99+
    2023-09-14
    java
  • java中的tostring方法怎么使用
    在Java中,toString()方法是Object类的一个方法,可以用于将一个对象转换成字符串表示形式。通常情况下,toStrin...
    99+
    2023-08-16
    java tostring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作