• 79.遍历map的方式


    遍历Map的方式:

    1、将map 集合中所有的键取出存入set集合。
            Set<K> keySet()   返回所有的key对象的Set集合
                                 再通过get方法获取键对应的值。
    2、 values() ,获取所有的值.
            Collection<V> values()不能获取到key对象
    3、 Map.Entry对象  推荐使用   重点
            Set<Map.Entry<k,v>> entrySet()
    将map 集合中的键值映射关系打包成一个对象
    Map.Entry对象通过Map.Entry 对象的getKey,
    getValue获取其键和值。

    第一种方式:使用keySet

    将Map转成Set集合(keySet()),通过Set的迭代器取出Set集合中的每一个元素(Iterator)就是Map集合中的所有的键,再通过get方法获取键对应的值。

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class Demo2 {
        public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<Integer, String>();
            map.put(1, "aaaa");
            map.put(2, "bbbb");
            map.put(3, "cccc");
            System.out.println(map);
    
            //
            // 获取方法:
            // 第一种方式: 使用keySet
            // 需要分别获取key和value,没有面向对象的思想
            // Set<K> keySet() 返回所有的key对象的Set集合
    
            Set<Integer> ks = map.keySet();
            Iterator<Integer> it = ks.iterator();
            while (it.hasNext()) {
                Integer key = it.next();
                String value = map.get(key);
                System.out.println("key=" + key + " value=" + value);
            }
        }
    }

    第二种方式: 通过values 获取所有值,不能获取到key对象

    public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<Integer, String>();
            map.put(1, "aaaa");
            map.put(2, "bbbb");
            map.put(3, "cccc");
            System.out.println(map);
    // 第二种方式:
            // 通过values 获取所有值,不能获取到key对象
            // Collection<V> values()
    
            Collection<String> vs = map.values();
            Iterator<String> it = vs.iterator();
            while (it.hasNext()) {
                String value = it.next();
                System.out.println(" value=" + value);
            }
    }

    第三种方式: Map.Entry

    public static interface Map.Entry<K,V>

    通过Map中的entrySet()方法获取存放Map.Entry<K,V>对象的Set集合。

    Set<Map.Entry<K,V>> entrySet()

    面向对象的思想将map集合中的键和值映射关系打包为一个对象,就是Map.Entry

    ,将该对象存入Set集合,Map.Entry是一个对象,那么该对象具备的getKey,getValue获得键和值。

    public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<Integer, String>();
            map.put(1, "aaaa");
            map.put(2, "bbbb");
            map.put(3, "cccc");
            System.out.println(map);
            // 第三种方式: Map.Entry对象 推荐使用 重点
            // Set<Map.Entry<K,V>> entrySet()
            
    
            // 返回的Map.Entry对象的Set集合 Map.Entry包含了key和value对象
            Set<Map.Entry<Integer, String>> es = map.entrySet();
    
            Iterator<Map.Entry<Integer, String>> it = es.iterator();
    
            while (it.hasNext()) {
                
                // 返回的是封装了key和value对象的Map.Entry对象
                Map.Entry<Integer, String> en = it.next();
    
                // 获取Map.Entry对象中封装的key和value对象
                Integer key = en.getKey();
                String value = en.getValue();
    
                System.out.println("key=" + key + " value=" + value);
            }
        }
    author@nohert
  • 相关阅读:
    第六章 实验报告(函数与宏定义)
    第三次实验报告
    第五章 循环结构课后反思
    第二次实验报告
    第一次实验报告
    第一次作业
    第九章 结构体与共用体
    第八章 指针实验
    第7章 数组实验
    第六章 函数和宏定义实验(2)
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13605329.html
Copyright © 2020-2023  润新知