集合Map函数常用方法以及遍历

Map的数据存储方式

  • map<K,V>

map基本方法使用

添加数据

  • put(k,v>

  • putall(Map map)

删除

  • remove 移除一个键的映射关系

  • clear 移除所有的映射

查找

  • containsKey(Object key):查找该key值是否存在

  • containsValue(Object value) :查找该value值是否存在

比较

  • equal和hashCode

其他功能:

  • entrySet():返回set映射关系视图

  • keySet():返回包含键的set视图

  • size():返回关系数

  • values():返回包含值的Collection视图

  • get(Object key):获取指定键的值

遍历Map对象的四种方式:

  1. 通过entrySet获得set对象结果集,然后遍历结果集,每个对象是一个Map,然后getKey和getValues

    Set<Map.Entry<Object, Object>> setlist =map.entrySet();
              for (Map.Entry<Object, Object> setone : setlist) {
                  System.out.println(setone.getKey()+":"+setone.getValue());
              }

    优点:普遍,可以同时获得键和值

    缺点:效率并不是很高

  2. 通过keySet()方法得到key的set结果集,遍历得到Key值;通过values()方法的values结果集,比例得到key值

     Set<Object> keyset = map.keySet();
              for (Object o : keyset) {
                  System.out.println("key"+o);
              }
              Collection<Object> values = map.values();
              for (Object value : values) {
                  System.out.println("值是"+value);
              }

    优点:效率高

    缺点:要分别得到key与value

  3. 通过entrySet得到set对象结果 集,然后用遍历器iterator遍历得到结果集

    Iterator<Map.Entry<Object, Object>> iterator = map.entrySet().iterator();
              while (iterator.hasNext()){
                  Map.Entry<Object,Object> entry=iterator.next();
                  System.out.println(entry.getKey()+":"+ entry.getValue());
              }

    优点:适应老版本,遍历时调用iterator.remove()来删除entries

    缺点:代码看起来冗余

  4. 这个不推荐,跟第二中相通,先通过keySet()获得key的结果集,遍历得到每一个key值,然后通过get(key)获得值,

     Set<Object> keyset = map.keySet();
              for (Object o : keyset) {
                  System.out.println(o+":"+map.get(o));
              }

    优点:代码简练

    缺点:效率更低

 

 

参考了博客:https://www.cnblogs.com/fqfanqi/p/6187085.html

由于笔者能力问题,有不足的地方,希望指出来!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Groovy中,可以使用map集合的each方法map集合进行遍。each方法函数原型定义了两种方式来迭代映射。第一种方式是通过传递键和值到闭包中,第二种方式是通过传递映射的条目到闭包中。通常情况下,无法保证地图内容的处理顺序,但是特殊形式的地图,比如树形图,会按照地图的自然顺序处理内容。 下面是一个示例代码,展示了如何使用each方法map集合进行遍: ```groovy class Test { static void main(args) { // 创建键值对 // 键 Key 可以不使用引号,可以使用单引号 '',也可以使用双引号 "" def map = [J:"Java", "K":"Kotlin", 'G':"Groovy"] // 遍 map 集合 map.each { key, value -> println "${key} = ${value}" } } } ``` 以上代码会输出map集合中的键值对,每个键值对都会被传递到闭包中,并打印出键和值的对应关系。 参考文献: Groovy集合 (使用for循环遍集合 | 使用集合的each方法集合 | 集合的each方法返回值分析)集合 [3] 代码示例<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Groovy】map 集合 ( map 集合 | 使用 map 集合的 each 方法 map 集合 | 代码示例 )](https://blog.csdn.net/han1202012/article/details/122172648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值