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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hlw521hxq/article/details/82904054

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

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

猜你喜欢

转载自blog.csdn.net/hlw521hxq/article/details/82904054