• Map遍历的多种方式


    java遍历Map的多种方法【多种多种,很多种,小编就比较喜欢jdk8以上的遍历方式:test7();test2();都非常好用】
    package com.gzu.pyu.thinking.in.java;
    
    import org.junit.jupiter.api.Test;
    
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.function.BiConsumer;
    
    /**
     * java遍历map的多种方法
     * 分为类
     * 1、普通的循环遍历
     * 2、jdk8以上的新特性
     *
     * @author pyu
     */
    public class TraverseMap {
        /**
         * 初始化一个有值的map
         */
        private static Map<String, String> traverseMap = new LinkedHashMap<String, String>() {{
            put("school", "gzu ");
            put("name", "pyu ");
            put("book", "thinking_in_java");
        }};
    
        /**
         * *********************************************
         * 以下为jdk8及以上的遍历方式
         */
        @Test
        public void test7() {
            System.out.println("TraverseMap method7:");
            traverseMap.forEach((key, value) -> {
                System.out.println(key + "=" + value);
            });
            System.out.println();
        }
    
        @Test
        public void test6() {
            System.out.print("TraverseMap method6:");
            traverseMap.forEach(new BiConsumer<String, String>() {
                @Override
                public void accept(String key, String value) {
                    System.out.println(key + "=" + value);
                }
            });
            System.out.println();
        }
    
        /**
         * 多线程并行执行
         */
        @Test
        public void test5() {
            System.out.print("TraverseMap method5:");
            traverseMap.keySet().parallelStream().forEach(key -> {
                System.out.println(key + "=" + traverseMap.get(key));
            });
            System.out.println();
        }
    
        /**
         * 串行执行
         */
        @Test
        public void test4() {
            System.out.print("TraverseMap method4:");
            traverseMap.keySet().stream().forEach(key -> {
                System.out.println(key + "=" + traverseMap.get(key));
            });
            System.out.println();
        }
    
    
        /**
         * *********************************************
         * 以下为java常规遍历map的方式
         * 1.优先选择foreach
         * 2.遍历List的同时要移除元素推荐使用iterator
         */
        @Test
        public void test3() {
            System.out.println("TraverseMap method3:");
            Iterator<String> iterator = traverseMap.keySet().iterator();
            while (iterator.hasNext()) {
                String next = iterator.next();
                System.out.println(next + "=" + traverseMap.get(next));
            }
            System.out.println();
        }
    
        /**
         * //java8之前的强烈推荐推荐,尤其是容量大时
         */
        @Test
        public void test2() {
            System.out.println("TraverseMap method2:");
            for (Map.Entry<String, String> entry : traverseMap.entrySet()) {
                System.out.println(entry.getKey() + "=" + entry.getValue());
            }
            System.out.println();
        }
    
        @Test
        public void test1() {
            System.out.println("TraverseMap method2:");
            for (String key : traverseMap.keySet()) {
                System.out.println("map.get(" + key + ") = " + traverseMap.get(key));
            }
            System.out.println();
        }
    
        //只能遍历value的值
        @Test
        public void test() {
            System.out.println("TraverseMap method0:");
            for (String value : traverseMap.values()) {
                System.out.println("map.value:" +value);
            }
            System.out.println();
        }
    }

    运行结果如下:

  • 相关阅读:
    第九周学习进度
    用户场景描述
    第九天
    第10天
    求两个有序数组的中值
    计算字符串中最长子字符串的长度
    计算两个数之和
    将string 转int
    判断一个int 型整数 是否为回文数
    php 对象的一些特性
  • 原文地址:https://www.cnblogs.com/gzu-link-pyu/p/8878267.html
Copyright © 2020-2023  润新知