zoukankan      html  css  js  c++  java
  • map

    Map(很重要)、方法keySet、entrySet演示图解

    Map:一次添加一对元素。Collection一次添加一个元素。Map也称为双列集合,Collection集合称为单列集合。其实Map集合中存储的就是键值对,Map集合必须保证键的唯一性。
    常用方法:
    1.添加:value put(key,value);返回一个和key关联的值,如果没有返回为null。
    2.删除:void clear();清空map集合。value remove(key);根据制定的key翻出这个键值对。
    3.修改:boolean containsKey(key);
    boolean containsValue(value);
    boolean isEmpty();
    4.查询:value get(key);通过键获取值,如果没有该键返回null。当然可以通过返回null,来判断是否包含指定键。
    int size();获取键值对分个数。
    map中存储相同键时,会覆盖值

    keySet

    图解:

     
    keySet.png

    举例:
    取出map中的所有元素。原理,通过keySet方法获取map中所有的键所在的Set集合,再通过Set的迭代器获取到每一个键,再对每一个键通过map集合的get方法获取其对应的值即可。

    package com.vv.map.demo;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Set;
    
    public class MapDemo {
    
        public static void main(String[] args) {
            HashMap<Integer,String> map = new HashMap<Integer,String>();
            method(map);
            
        }
    
        private static void method(HashMap<Integer, String> map) {
            map.put(8,"zhaoliu");
            map.put(2,"zhaoliu");
            map.put(7,"xiaoqiang");
            map.put(6,"wangcai");
            
            Set<Integer> set = map.keySet();
            Iterator<Integer> it = set.iterator();
            while(it.hasNext()){
                Integer key = it.next();
                String value = map.get(it.next());
                
                System.out.println(key + ":" + value);
            }
            }
    
    }
    
    

    entrySet
    图解

     
    entrySet .png

    通过Map转成set就可以迭代,找到了另一个方法,entrySet,该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系的类型就是Map.Entry类型(k,v)

    package com.vv.map.demo;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    public class MapDemo {
    
        public static void main(String[] args) {
            HashMap<Integer,String> map = new HashMap<Integer,String>();
            method(map);
            
        }
    
        private static void method(HashMap<Integer, String> map) {
            map.put(8,"zhaoliu");
            map.put(2,"zhaoliu");
            map.put(7,"xiaoqiang");
            map.put(6,"wangcai");
            
            Set<Map.Entry<Integer, String>> set = map.entrySet();
            Iterator<Map.Entry<Integer, String>> it = set.iterator();
            while(it.hasNext()){
                Map.Entry<Integer, String> entry = it.next();
                Integer key = entry.getKey();
                String value = entry.getValue();
                System.out.println(key + ";;;;;;" + value);
            }
            
            }
    
    }
    
    

    只获取value时

    package com.vv.map.demo;
    
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    public class MapDemo {
    
        public static void main(String[] args) {
            HashMap<Integer,String> map = new HashMap<Integer,String>();
            method(map);
            
        }
    
        private static void method(HashMap<Integer, String> map) {
            map.put(8,"zhaoliu");
            map.put(2,"zhaoliu");
            map.put(7,"xiaoqiang");
            map.put(6,"wangcai");
            
            Collection<String> values = map.values();
            Iterator<String> it = values.iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
            }
    }

    转载至https://www.jianshu.com/p/430506b19b0d
  • 相关阅读:
    有7g和2g的砝码各一个,怎样称可以3次把140g东西分为50g和90g???????
    中缀到后缀(一个例子)
    动态代理模式的使用
    代理模式用来初始化的延迟下载
    ReentrantLock Condition 实现消费者生产者问题
    Two Sum
    [leetcode]重建二叉树(先序和终须) 中序遍和后续
    (转载)旋转数组查找 最简洁方法 总结
    [不明觉厉] 下一个排列
    codeforces -- 283A
  • 原文地址:https://www.cnblogs.com/jinlang/p/14117026.html
Copyright © 2011-2022 走看看