zoukankan      html  css  js  c++  java
  • Map遍历的几种方法

    查看Map自带API 

    map遍历方法:

     public static void main(String[] args) {
            Map<Integer,String> map = new HashMap<Integer,String>();
    
            map.put(10,"first");
            map.put(20,"second");
            map.put(30,"third");
    
            /**
             * 通过map.keySet遍历key,通过map.get(key)取value
             *
             * 特点:适用于仅获取key的情况,同时也可通过key获取value,
             * 不过不推荐使用该方法获取value(原因:通过key值去计算对应的hash,然后再通过hash获取对应的结果值,会导致效率较低)
             */
            for (Integer key:map.keySet()
                 ) {
                System.out.println("key is " + key +" and value is " + map.get(key));
            }
    
            /**
             * 通过map.entrySet()遍历该map,通过entry.getKey()获取key  entry.getValue()获取value
             *
             * 特点:同时需要key和value时推荐使用
             * hashMap内部的存储结构就是基于Entry的数组,在用这种方式进行遍历时,只需要遍历一次即可
             */
            for (Map.Entry<Integer,String> entry:map.entrySet()
                 ) {
                System.out.println("key is " + entry.getKey() + " and value is " + entry.getValue());
            }
    
            /**
             * 通过map.entrySet()使用iterator遍历,it.getKey()获取key  it.getValue()获取value
             *
             *特点:效率同map.entrySet(),增加删除元素的功能,可以使用Iterator的remove方法删除元素
             */
            Iterator<Map.Entry<Integer,String>> iterator = map.entrySet().iterator();
            while(iterator.hasNext()){
                Map.Entry<Integer,String> it = iterator.next();
                //删除元素
                if("second".equals(it.getValue())){
                    iterator.remove();
                }
                System.out.println("key is " + it.getKey() + " and value is "+ it.getValue());
            }
    
            /**
             * 通过map.values()获取所有的value遍历,适用于只获取value的情景
             *
             * 特点:适用于仅取value的情况
             */
            for (String value:map.values()
                 ) {
                System.out.println("value is "+value);
            }
    
    
            /**
             * java8 Lambda表达式遍历
             */
            map.forEach((key, value) -> {
                System.out.println("Lambda-> key is " + key + "and value is" + value);
            });
    
        }
  • 相关阅读:
    Android属性动画ObjectAnimator的使用1
    通过Android反编译技术研究国内陌生人社交即时通讯的技术方案
    滴滴出行开源项目doraemonkit食用指南
    Android开发利器之pidcat
    Spinner在Dialog中的使用效果
    python抓取知识星球精选帖,制作为pdf文件
    [设计模式]观察者模式
    C语言实现进度条
    [设计模式]策略模式
    线程链表与线程切换
  • 原文地址:https://www.cnblogs.com/zjfjava/p/10152892.html
Copyright © 2011-2022 走看看