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

    声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635

    探讨有几种遍历Map的方法其实意义并不大,网上的文章一般讲4种或5种的居多,重要的是知道遍历的内涵,从遍历元素的角度来看,分为Key、Value、Map.Entry,从遍历的方法来看,分为foreach、Iterator。即Map可以对Key、Value、Map.Entry分别执行foreach、Iterator遍历,所以总结有2*3=6种遍历方式。

    提供实例如下。

    源码如下
    package com;

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    public class TestMapTraversal
    {
        public static void main(String[] args)
        {
            Map<Integer, String> testmap = new HashMap<Integer, String>();
            testmap.put(100, "100");
            testmap.put(200, "200");
            System.out.println("
    ------>1");
            //方法1:按照key foreach
            for (Integer key : testmap.keySet())
            {
                System.out.println("key=" + key + ", value=" + testmap.get(key));
            }
    
            //方法2:按照key iterator
            Iterator<Integer> iterable2 = testmap.keySet().iterator();
            System.out.println("
    ------>2");
            int key2;
            while(iterable2.hasNext())
            {
                key2 = iterable2.next();
                System.out.println("key=" + key2 + ", value=" + testmap.get(key2));
            }
    
            //方法3:按照Map.Entry foreach
            System.out.println("
    ------>3");
            for (Map.Entry<Integer, String> entry : testmap.entrySet())
            {
                System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue());
            }
    
            //方法4:按照Map.Entry Iterator
            System.out.println("
    ------>4");
            Iterator iterator4 = testmap.entrySet().iterator();
            Map.Entry<Integer, String> entry4;
            while(iterator4.hasNext())
            {
                entry4 = (Map.Entry)iterator4.next();
                System.out.println("key=" + entry4.getKey() + ", value=" + entry4.getValue());
            }
    
            //方法5:按照value foreach
            System.out.println("
    ------>5");
            for (String value : testmap.values())
            {
                System.out.println("value=" + value);
            }
    
            //方法6:按照value iterator
            System.out.println("
    ------>6");
            Iterator iterator6 = testmap.values().iterator();
            String value6;
            while(iterator6.hasNext())
            {
                value6 = (String)iterator6.next();
                System.out.println("value=" + value6);
            }
        }
    }
    

    运行结果如下

    ------>1
    key=100, value=100
    key=200, value=200
    
    ------>2
    key=100, value=100
    key=200, value=200
    
    ------>3
    key=100, value=100
    key=200, value=200
    
    ------>4
    key=100, value=100
    key=200, value=200
    
    ------>5
    value=100
    value=200
    
    ------>6
    value=100
    value=200
    
  • 相关阅读:
    async/await语法
    generator生成器函数
    数组练习
    解决异步(重点promise函数)
    iterator遍历器
    各种遍历方法(重点for....of)
    ES6代理proxy
    Symbol新数据类型
    函数(rest 箭头)
    ES6常用方法(字符串,数字,数组,对象)
  • 原文地址:https://www.cnblogs.com/xsl-thumb-rfcs/p/9941597.html
Copyright © 2011-2022 走看看