1. Map集合

    Java.util.Map接口

        |--HashMap实现类

        |--TreeMap实现类


2. HashMap实现类

    Map接口定义的集合又称为查找表,用于存储所谓“Key-Value”键值对。Key可以看成是Value的索引。而往往Key是Value的一部分内容。

     1)Key不可以重复,但所保存的Value可以重复。

     2)根据内部结构的不同,Map接口有多种实现类,其中常用的有内部为hash表实现的HashMap和内部为排序二叉树实现的TreeMap。同样这样的数据结构在存放数据时,也不建议存放两种以上的数据类型,所以,通常我们在使用Map时也要使用泛型约束存储内容的类型。

     3)创建Map时使用泛型,这里要约束两个类型,一个是key的类型,一个是value的类型。

     4)基本原理图:

        Java核心API -- 8(Map集合)_第1张图片

    5)HashMap集合中常用的方法:

        ① V put(K Key,V value):将元素以Key-Value的形式放入map。若重复保存相同的key时,实际的操作是替换Key所对应的value值。 

        ② V get(Object key):返回key所对应的value值。如果不存在则返回null。

        ③ boolean containsKey(Object Key):判断集合中是否包含指定的Key。

        ④ boolean containsValue(Object value):判断集合中是否包含指定的Value。

    6)若给定的key在map中不存在则返回null,所以,原则上在从map中获取元素时要先判断是否有该元素,之后再使用,避免空指针异常的出现。Map在获取元素时非常有针对性,集合想获取元素需要遍历集合内容,而Map不需要,你只要给他特定的key就可以获取该元素。


    案例12:

        Java核心API -- 8(Map集合)_第2张图片


    案例13: 

        Java核心API -- 8(Map集合)_第3张图片

    结果:

        wKiom1WSPirBS9wuAAAzFg6B89A863.jpg


    7)遍历HashMap方式一:获取所有的key并根据key获取value从而达到遍历的效果(即迭代Key)。keySet()方法:是HashMap获取所有key的方法,该方法可以获取保存在map下所有的key并以Set集合的形式返回。


    案例14:

        Java核心API -- 8(Map集合)_第4张图片

    结果:

        wKioL1WSQCGgszCGAAC4Sbjixl8564.jpg


    8)Entry类,遍历HashMap方式二:以“键值对”的形式迭代。Map支持另一个方法entrySet():该方法返回一个Set集合,里面的元素是map中的每一组键值对,Map以Entry类的实例来描述每一个键值对。其有两个方法:getKey()获取key值;getValue()获取value值。Entry也需要泛型的约束,其约束的泛型应该和Map相同!Entry所在位置:java.util.Map.Entry。


    案例15:

        Java核心API -- 8(Map集合)_第5张图片

    结果:

        wKiom1WSPp3igtsBAAC7w1bUQDE969.jpg