Map集合中value()与keySet()、entrySet()区别

Map集合中value()与keySet()、entrySet()区别在Map集合中values():方法是获取集合中的所有的值—-没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。keySet():迭代后只能通过get()取keyentrySet():Set<Map.Entry<K,V>>ent…

大家好,又见面了,我是你们的朋友全栈君。

在Map集合中

values():方法是获取集合中的所有的值—-没有键,没有对应关系,

KeySet():
将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key 

entrySet():

 

Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。

 

 

 

下面通过例子看看:

Map<String,String> map = new HashMap<String,String>();
map.put(“01”, “zhangsan”);
map.put(“02”, “lisi”);
map.put(“03”, “wangwu”);

Collection<String> collection = map.values();//返回值是个值的Collection集合
System.out.println(collection);
打印结果:
[zhangsan, lisi, wangwu]

Set<K> keySet() //返回值是个只存放key值的Set集合(集合中无序存放的)

Set<Map.Entry<K,V>> entrySet() //返回映射所包含的映射关系的Set集合(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。

一. keySet()方式。

Map<String,String> map = new HashMap<String,String>();
                
        map.put(“01”, “zhangsan”);
        map.put(“02”, “lisi”);
        map.put(“03”, “wangwu”);
                
                
        Set<String> keySet = map.keySet();//先获取map集合的所有键的Set集合

        Iterator<String> it = keySet.iterator();//有了Set集合,就可以获取其迭代器。
                
        while(it.hasNext()){

                String key = it.next();
                String value = map.get(key);//有了键可以通过map集合的get方法获取其对应的值。
                        
                System.out.println(“key: “+key+”–>value: “+value);//获得key和value值
                }

二. entrySet()方式:
Map<String,String> map = new HashMap<String,String>();
                
map.put(“01”, “zhangsan”);
map.put(“02”, “lisi”);
map.put(“03”, “wangwu”);

//通过entrySet()方法将map集合中的映射关系取出(这个关系就是Map.Entry类型)
Set<Map.Entry<String, String>> entrySet = map.entrySet();

//将关系集合entrySet进行迭代,存放到迭代器中                
Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
                
while(it2.hasNext()){

        Map.Entry<String, String> me = it2.next();//获取Map.Entry关系对象me
        String key2 = me.getKey();//通过关系对象获取key
        String value2 = me.getValue();//通过关系对象获取value
                        
        System.out.println(“key: “+key2+”–>value: “+value2);
}

虽然使用keyset及entryset来进行遍历能取得相同的结果
但两者的遍历速度是有差别的

keySet():迭代后只能通过get()取key 
entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 

说明:keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好
为了提高性能,以后多考虑用entrySet()方式来进行遍历。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139125.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DirectoryExists

    DirectoryExists判断文件夹是否存在关键点GetFileAttributesTheGetFileAttributesfunctionretrievesattributesforaspecifiedfileordirec

    2022年7月2日
    20
  • js和java那个难_javascript与java哪个难?

    js和java那个难_javascript与java哪个难?javascript与java哪个难?答案是:JavaScript比Java更难。那么这是为什么?下面本篇文章就来给大家介绍一下,希望对大家有所帮助。原因:JavaScript有太多东西需要你自己去理解,这些东西里有很多要么Java已经给你做成范式了,你可以通过学习范式来理解;要么就是根本没有,无需理解。JavaScript需要在语言的基础上再整理一套方法论,这个过程会有不同流派。而Java基本上…

    2022年7月7日
    28
  • Docker 1.3 公布

    Docker 1.3 公布

    2022年2月6日
    35
  • Go语言面试题汇总[通俗易懂]

    Go语言面试题汇总[通俗易懂]正在准备golang面试的小伙伴,很荣幸,你能看到这篇文章,希望每一个看到这篇分享的小伙伴都能找到自己称心如意的工作!1、说说go语言的main函数(1)、main函数不能带参数。(2)、main函数不能定义返回值。(3)、main函数所在的包必须为main包。(4)、main函数中可以使用flag包来获取和解析命令行参数。2、在go语言中,new和make的区别?new函数是内建函…

    2022年6月17日
    107
  • 下列变量名不符合python命名规范的是_以下选项中,不符合 Python 语言变量命名规则的有( )…「建议收藏」

    下列变量名不符合python命名规范的是_以下选项中,不符合 Python 语言变量命名规则的有( )…「建议收藏」【单选题】Python关系运算符中表示“不等于”的是哪个?________【单选题】下面________不是Python合法的标识符【其它】自选某一主题查阅文献(必须有英文文献),撰写关于特殊儿童动作发展或康复训练相关的文献综述。主题围绕关键词:特殊儿童(SpecialChildren)、自闭症(Autism、autisticdisorder、ASD)、多动症(att…

    2022年6月7日
    80
  • protege5.5_ProE4.0

    protege5.5_ProE4.0OWL本体的重要组成部分Individuals:个体,代表一个领域里面的对象。可以理解成一个类的实例(instancesofclasses)。Properties:属性,是两个个体之间的双重联

    2022年8月4日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号