JAVA集合&&数组(三)——Map


目录:

..........1、Map  

              Map接口定义的集合又称为查找表,用于储存所谓的‘key-value’映射对。Key不可以重复。

..........2、Map接口的实现类:

              根据内部实现不同,Map接口有多种实现类,常用的有:

              1) 内部为hash表实现的HashMap

              2) 内部为排序二叉树实现的TreeMap

..........3、Map接口定义的方法有

              1) put

              2) get

              3) remove

              4) constainsKey

..........4、HashMap实现原理


一、Map

    JAVA集合&&数组(三)——Map_第1张图片

    Map用于保存具有映射关系的数据,保存着两组值,一组值用于保存Map里的key,一组值用于保存map里的value。

1、key和value都可以是任何类型的数据;

2、key不能重复,同一个Map中的任何两个key通过equsls方法比较总是返回true;

3、所有key放在一起构成一个set集合(所有key没有顺序,不能重复)


二、Map接口实现类:

    HashMap

    LinkedHashMap

    SortMap

    TreeMap

    EnumMap


三、Map接口定义的的方法

1、向Map中存放、获取、删除元素

   存放元素:map.put();

   获取元素:map.get();

   删除元素:map.remove();

   查询是否包含某个key:map.constainsKey();

   

    package cn.qiuuuu.map;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.TreeMap;
    public class MapExercise {
        public static void main(String[] args) {
            Map mapHash=new HashMap();
            Map mapTree=new TreeMap();
            //向mapHash中存入值
            mapHash.put("ZhangSan", 90);
            mapHash.put("LiSi", 100);
            mapHash.put("WangWu", 80);
            mapHash.put("XiaoLi", 60);
            //输出mapHash中的内容
            System.out.println(mapHash);
            //
            mapHash.put("xiaoLi", 77);
            System.out.println(mapHash);
            mapHash.put("wuwu", 60);
            System.out.println(mapHash);
            mapHash.put("XiaoLi", 77);
            System.out.println(mapHash);
            //输出LiSi的成绩
            int math=mapHash.get("LiSi");
            System.out.println("LiSi的数学成绩为:"+math);
            //删除与LiSi相关的信息
            mapHash.remove("LiSi");
            System.out.println(mapHash);
            //是否包含某个Key
            boolean constain=mapHash.containsKey("ZhangSan");
            System.out.println(constain);
        }
    }


输出结果为:

JAVA集合&&数组(三)——Map_第2张图片


2、遍历Map集合的四种方式

   通过key遍历

   通过entry实例遍历

   通过value遍历


        Map map = new HashMap();

        map.put("chinese", 100);

        map.put("math", 99);

        map.put("english", 100);

        map.put("PE", 90);


        // 1.通过key遍历

        for (String key : map.keySet()) {

            Integer value = map.get(key);

            System.out.println(key + " : " + value + "分");

        }

        // 2.通过entry遍历

        for (Entry entry : map.entrySet()) {

            String key = entry.getKey();

            int value = entry.getValue();

            System.out.println(key + " : " + value+ "分");

        }

        // 3.通过value遍历

        for (Integer value : map.values()) {

            System.out.println(value+ "分");

        }


四、HampMap实现原理


JAVA集合&&数组(三)——Map_第3张图片