广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java高级之HashMap中的entrySet()方法使用
  • 894
分享到

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

JavaHashMapJavaentrySet()方法JavaHashMapentrySet()方法 2023-03-22 18:03:00 894人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录基本使用原理剖析总结基本使用 entrySet()方法得到HashMap中各个键值对映射关系的集合。 然后Map.Entry中包含了geTKEy()和getValue()方法获取

基本使用

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类

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

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

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

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

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

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

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

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

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

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

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

下载Word文档
猜你喜欢
  • Java高级之HashMap中的entrySet()方法使用
    目录基本使用原理剖析总结基本使用 entrySet()方法得到HashMap中各个键值对映射关系的集合。 然后Map.Entry中包含了getKey()和getValue()方法获取...
    99+
    2023-03-22
    Java HashMap Java entrySet()方法 Java HashMap entrySet()方法
  • Java高级之HashMap中的entrySet()方法怎么使用
    本篇内容主要讲解“Java高级之HashMap中的entrySet()方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java高级之HashMap中的entrySet()方法怎么使用”...
    99+
    2023-07-05
  • 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中ModelMapper的高级使用方法有哪些
    本篇内容介绍了“Java中ModelMapper的高级使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ModelMapper 高...
    99+
    2023-06-29
  • java中RabbitMQ高级应用方法
    这篇文章主要介绍了java中RabbitMQ高级应用方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中RabbitMQ高级应用方法文章都会有所收获,下面我们一起来看看吧。1、消息可靠性投递&e...
    99+
    2023-06-30
  • java高级用法之JNA中的回调问题
    目录简介JNA中的Callbackcallback的应用callback的定义callback的获取和应用在多线程环境中使用callback总结简介 什么是callback呢?简单点...
    99+
    2022-11-13
  • Java中HashMap集合的常用方法详解
    目录public Object clone()总结public Object clone() 返回hashMap集合的副本   其余的方法都是实现Map...
    99+
    2022-11-12
  • 分析Java中HashMap集合的常用方法
    这篇文章主要介绍“分析Java中HashMap集合的常用方法”,在日常操作中,相信很多人在分析Java中HashMap集合的常用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析Java中HashMap集...
    99+
    2023-06-25
  • Laravel中where的高级使用方法
    这篇文章主要介绍了Laravel中where的高级使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有时候项目中需要进行多个字段搜索就可以用到此方法在Larav...
    99+
    2023-06-08
  • Java中ModelMapper 的高级使用
    目录ModelMapper高级使用使用实例实体类ModelMapper配置类ModelMapperService类测试类测试结果ModelMapper 高级使用  &ems...
    99+
    2022-11-13
  • java高级用法之JNA中的回调问题怎么解决
    今天小编给大家分享一下java高级用法之JNA中的回调问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简介什么是c...
    99+
    2023-06-30
  • Java 流的高级使用之收集数据解析
    目录一、前言1.1 收集器1.2 预定义收集器Collectors类为我们提供的收集器,主要包含三大功能:二、深入2.1 规约和汇总统计元素数量查找流中的最大值和最小值汇总连接字符串...
    99+
    2022-11-12
  • java高级用法之绑定CPU的线程Thread Affinity简介
    目录简介Java Thread Affinity简介AffinityLock的使用使用API直接分配CPU总结简介 在现代计算机系统中,可以有多个CPU,每个CPU又可以有多核。为了...
    99+
    2022-11-13
  • java之JNA中的Memory和Pointer的使用方法
    目录简介Pointer特殊的Pointer:OpaqueMemory总结简介 我们知道在native的代码中有很多指针,这些指针在JNA中被映射成为Pointer。除了Pointer...
    99+
    2022-11-13
  • js中eval方法详解之eval方法的初级应用
    目录前言eval()方法的参数形式eval()方法的错误处理机制注意:总结前言 在我看来,js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照JavaScript语...
    99+
    2023-01-16
    js的eval方法 js eval()函数的作用是什么 javascript中eval函数
  • VUE中常用的4种高级方法
    目录1. provide/inject2. 自定义v-model3. 事件总线(EventBus)3.1 创建一个全局Vue实例作为事件总线:3.2 在需要发送事件的组件中,使用$e...
    99+
    2023-05-19
    vue常用方法 vue高级方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作