标签:map hashmap keyset entryset
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)基本原理图:
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:
结果:
本文出自 “永远年轻” 博客,请务必保留此出处http://kingkongzhao.blog.51cto.com/6319491/1669399
标签:map hashmap keyset entryset
原文地址:http://kingkongzhao.blog.51cto.com/6319491/1669399