1. Map集合java
Java.util.Map接口数据结构
|--HashMap实现类ide
|--TreeMap实现类spa
2. HashMap实现类3d
Map接口定义的集合又称为查找表,用于存储所谓“Key-Value”键值对。Key能够当作是Value的索引。而每每Key是Value的一部份内容。指针
1)Key不能够重复,但所保存的Value能够重复。orm
2)根据内部结构的不一样,Map接口有多种实现类,其中经常使用的有内部为hash表实现的HashMap和内部为排序二叉树实现的TreeMap。一样这样的数据结构在存放数据时,也不建议存放两种以上的数据类型,因此,一般咱们在使用Map时也要使用泛型约束存储内容的类型。blog
3)建立Map时使用泛型,这里要约束两个类型,一个是key的类型,一个是value的类型。排序
4)基本原理图:索引
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:
案例13:
结果:
7)遍历HashMap方式一:获取全部的key并根据key获取value从而达到遍历的效果(即迭代Key)。keySet()方法:是HashMap获取全部key的方法,该方法能够获取保存在map下全部的key并以Set集合的形式返回。
案例14:
结果:
8)Entry类,遍历HashMap方式二:以“键值对”的形式迭代。Map支持另外一个方法entrySet():该方法返回一个Set集合,里面的元素是map中的每一组键值对,Map以Entry类的实例来描述每个键值对。其有两个方法:getKey()获取key值;getValue()获取value值。Entry也须要泛型的约束,其约束的泛型应该和Map相同!Entry所在位置:java.util.Map.Entry。
案例15:
结果: