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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • repeater嵌套以及合计问题

    repeater嵌套以及合计问题这次是做免费品订单的详情页面,根据需求,要做如下展示看着还行,就是repeater里面嵌套一个repeater呗,因为之前做过类似的,代码实现不是什么大问题,存储过程也都可以搞定,第二层的repeater这么绑定就可以了protectedvoidrptSapOrderList_ItemDataBound(objectsender,RepeaterItemEventArgse)

    2022年7月14日
  • java超市仓库管理系统(超市条形码管理系统)

    目录文档说明:一、语言和环境二、要求三、重要说明四、推荐实现步骤五、注意事项实现代码:一、数据库:二、JavaSwing:com.ynavc.Beancom.ynavc.Controllercom.ynavc.Daocom.ynavc.Testcom.ynavc.Vive文档说明:一、语言和环境A、实现语言Java(SWING+JDBC),MySqlB、开发环境MyEclipse9.0及以上版本,MySql5.6及…

    2022年4月10日
  • python编程考试有哪些(python编程考试模拟题)

    python编程考试有哪些(python编程考试模拟题)2021国内外主流机器人编程赛事+等级考试Scratch编程、C++编程、Python编程等多个赛项,评比类、竞技类不同比赛形式自主选择。多个国内外主流机器人编程赛事,总能帮助孩子找到施展能力、表现创意的舞台。机器人、编程、人工智能等级考试篇全国青少年机器人技术等级考试和全国青少年软件编程等级考试均由中国电子…。2021机器人编程赛事+等级考试攻略之国内外主流赛事及能力测评篇上周,玛酷在公众号发布了一篇名为《2021机器人编程赛事+等级考试攻略之教育部白名单赛事篇》的文章。文章中为大家介绍了20

    2022年5月17日
  • Python-字符串str和json格式的转换「建议收藏」

    Python-字符串str和json格式的转换「建议收藏」str转jsonstr转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号。如果不一致,推荐用正则进行拆分至和json格式一致1.通过json.loads进行转换importjsonstr='{"key":"wwww","word":"qqqq"}’j=json.loads(str)print(j)pri…

    2022年6月11日
  • 堆栈的应用——用JavaScript描述数据结构[通俗易懂]

    堆栈的应用——用JavaScript描述数据结构[通俗易懂]堆栈的应用——用JavaScript描述数据结构

    2022年4月20日
  • 防止攻击服务器_iis部署网站无法通过ip访问

    防止攻击服务器_iis部署网站无法通过ip访问摘要:介绍了IIS服务器常见的攻击及几种常见防御方式,阐述了IIS服务器的攻击原理,针对IIS服务器的缺陷阐述了IIS的常用防御方式,同时结合实例具体实现方式。关键词:IIS;服务器攻击;服务器防御中图分类号:TP393            文献标识码:A0         引言  随着Internet的不断发展与普及,英特网上出现了越来越多的WEB服务器。人们通过WEB服

    2022年8月30日

发表回复

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

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