美文网首页Java
Java - 遍历Map

Java - 遍历Map

作者: 533e11a308d9 | 来源:发表于2018-01-04 19:34 被阅读21次

    遍历Map

    package com.code.ggsddu;
    
    import org.junit.Test;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    public class AboutMap {
    
        @Test
        public void mapTraversal() {
            Map<String, Object> map = new HashMap<>();
            map.put("one", 1);
            map.put("two", 2);
            map.put("three", 3);
    
            // 增强for循环遍历key
            for (String key : map.keySet()) {
                System.out.println(key);
            }
            // // 增强for循环遍历value
            for (Object value : map.values()) {
                System.out.println(value);
            }
            // 效率极低
            for (String key : map.keySet()) {
                System.out.println(key);
                System.out.println(map.get(key));
            }
    
            /**
             * Map.Entry
             * 描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
             */
    
            // 通过Map.entrySet遍历key和value(推荐,尤其是容量大时)
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                entry.getKey();
                entry.getValue();
            }
    
            // 通过Map.entrySet使用iterator遍历key和value
            Iterator<Map.Entry<String, Object>> entryIterator = map.entrySet().iterator();
            while (entryIterator.hasNext()) {
                Map.Entry<String, Object> entry = entryIterator.next();
                System.out.println(entry.getKey() + ", " + entry.getValue());
            }
    
            // lambda表达式
            map.forEach((key, value) -> System.out.println("key: " + key + ", value: " + value));
        }
    
    }
    

    遍历List

    package com.code.ggsddu;
    
    import org.junit.Test;
    
    import java.util.*;
    
    public class AboutList {
    
        @Test
        public void listTraversal() {// 遍历List
            List<Object> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6);
    
            // List转数组后遍历数组
            Object[] arr = list.toArray();
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + " ");
            }
    
            // 增强for循环
            for (Object obj : list) {
                System.out.print(obj + " ");
            }
    
            // 用迭代器遍历集合框架,它是一个对象,实现了Iterator接口或ListIterator接口。
            // 采用迭代器的方法,该方法可以不用担心在遍历的过程中会超出集合的长度。
            Iterator<Object> iterator = list.iterator();
            while (iterator.hasNext()) {
                System.out.print(iterator.next() + " ");
            }
    
            /**
             * Lambda表达式
             * Java8之前, 集合类的迭代(Iteration)都是外部的,即客户代码。
             * 而内部迭代意味着改由Java类库来进行迭代,而不是客户代码。
             */
            list.forEach(obj -> {
                System.out.print(obj + " ");
            });
        }
    
    }
    

    相关文章

      网友评论

        本文标题:Java - 遍历Map

        本文链接:https://www.haomeiwen.com/subject/xkldnxtx.html