• 1-28Map简介


    Map接口概述
    除了Collection之外,常用的集合还有Map接口,里面常用的实现类图如下:

    map中的元素是以键-值的方式存在的,通过键可以获取到值,键是不可以重复的,跟地图比较像,通过一个坐标就可以找到具体的位置。

    package com.monkey1024.map;
    
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * Map简介
     *
     */
    public class MapTest01 {
    
        public static void main(String[] args) {
            Map<Integer,String> map = new HashMap<>();
            String s1 = map.put(1001, "成龙");
            map.put(1002, "周润发");
            map.put(1003, "周星驰");
            //将1001 成龙替换掉,并且返回被替换的成龙
            String s2 = map.put(1001, "房祖名");
    
            System.out.println(s1);
            System.out.println(s2);
    
            //判断是否包含传入的键
            System.out.println(map.containsKey(1002));    
            //判断是否包含传入的值
            System.out.println(map.containsValue("周星驰"));
            //获取map的大小
            System.out.println(map.size());
            //将map中的值返回
            Collection<String> c = map.values();
            System.out.println(c);
            System.out.println(map);
    
            //删除键是1001的数据并且将值返回
            String s3 = map.remove(1001);
            System.out.println(s3);
        }
    
    }
    

    Map的遍历
    方式一:Map中的keySet()返回的是一个包含所有键的Set类型的对象,通过键获取值

    package com.monkey1024.map;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * Map的遍历
     *
     */
    public class MapTest02 {
    
        public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<>();
            map.put(1001, "成龙");
            map.put(1002, "周润发");
            map.put(1003, "周星驰");
            map.put(1004, "刘德华");
    
            // 通过键获取值
            String s = map.get(1004);
            System.out.println(s);
    
            // 获取map中所有的键返回给Set
            Set<Integer> keySet = map.keySet();
    
            //遍历set获取键,根据键获取值
            Iterator<Integer> iter = keySet.iterator();
            while(iter.hasNext()){
                Integer key = (Integer)iter.next();
                System.out.println("键:" + key + ",值:" + map.get(key));
            }
    
    
            //使用增强for循环遍历
            for(Integer key : map.keySet()) {            
                System.out.println("键:" + key + ",值:" + map.get(key));
            }
        }
    
    }
    

    方式二:Map中的键和值被封装成了Entry对象,并存储在Set集合中,通过entrySet()可以获取到这个Set集合。

    package com.monkey1024.map;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    /**
     * Map的遍历
     *
     */
    public class MapTest03 {
    
        public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<>();
            map.put(1001, "成龙");
            map.put(1002, "周润发");
            map.put(1003, "周星驰");
            map.put(1004, "刘德华");
    
            //键和值被封装成了Entry对象,并存储在Set集合中
            Set<Map.Entry<Integer,String>> entrySet = map.entrySet();
            Iterator<Map.Entry<Integer,String>> it = entrySet.iterator();
            while(it.hasNext()) {
                //获取每一个Entry对象
                Entry<Integer,String> en = it.next();    
                //根据键值对对象获取键
                Integer key = en.getKey();        
                //根据键值对对象获取值
                String value = en.getValue();    
                System.out.println("键:" + key + ",值:" + value);
            }
    
    
            //增强for循环
            for (Entry<Integer, String> en : map.entrySet()) {
                System.out.println("键:" + en.getKey() + ",值:" + en.getValue());
            }
        }
    
    }
    

    LinkedHashMap
    LinkedHashMap的特点:存取顺序一致

    package com.monkey1024.map;
    
    import java.util.LinkedHashMap;
    
    /**
     * LinkedHashMap简介
     *
     */
    public class MapTest04 {
    
        public static void main(String[] args) {
            LinkedHashMap<Integer,String> lhm = new LinkedHashMap<>();
            lhm.put(1003, "周星驰");
            lhm.put(1004, "刘德华");
            lhm.put(1001, "成龙");
            lhm.put(1002, "周润发");
    
            System.out.println(lhm);
        }
    
    }
    

    TreeMap
    TreeMap的特点:可以对存储的元素进行排序

    package com.monkey1024.map;
    
    import java.util.TreeMap;
    
    /**
     * TreeMap简介
     *
     */
    public class MapTest05 {
    
        public static void main(String[] args) {
            TreeMap<Integer,String> tm = new TreeMap<>();
            tm.put(1003, "周星驰");
            tm.put(1004, "刘德华");
            tm.put(1001, "成龙");
            tm.put(1002, "周润发");
    
            System.out.println(tm);
        }
    
    }
    

    HashMap和Hashtable的区别
    Hashtable是JDK1.0版本出现的,是线程安全的,效率低,不可以存储null键和null值
    HashMap是JDK1.2版本出现的,可以存储null键和null值

  • 相关阅读:
    spring-boot集成1:起步
    策略模式实现多种支付方式
    自定义切面实现记录系统操作日志
    Spring Kafka
    使用Keepalived实现Nginx高可用
    Centos7桥接网络、DNS、时间同步配置
    jmeter随笔(1)-在csv中数据为json格式的数据不完整
    (续篇3):飞测独家のJmeter秘籍,限量发放
    紧张:飞测独家のJmeter秘籍,限量发放(续篇2)
    紧张:飞测独家のJmeter秘籍,限量发放
  • 原文地址:https://www.cnblogs.com/superfly123/p/10483356.html
Copyright © 2020-2023  润新知