##能够说出Map集合特点
##使用Map集合添加方法保存数据
##使用"键找值"的方式遍历Map集合
##使用"键值对"的方式遍历Map集合
##能够使用HashMap存储自定义键值对的数据
##能够使用HashMap编写斗地主洗牌发牌案例
java.util.Map<k,v>集合
Map双列集合的特点:
1.是一个双列集合,一个元素包含两个值(key,value)//每个元素由键值对组成
2.集合中的元素,key和value的数据类型可以相同,也可以不同.
3.集合中的元素,key是不允许重复的,value是可以重复的//其中键不能重复,值可以重复
4.集合中的元素,key和value是一一对应的//可以通过键找到对应的值
例:地图:
地址(不可重复) 地名(可重复)
Map:
key value
**通过key可以找到对应的值
Map的实现类介绍
1.--HashMap 底层是哈希表的实现(HashMap中的键其实就是HashSet)
--LinkedHashMap *就是一个有序的HashMap
2.--Hashtable 是同步的,不允许null键和null值(HashMap是不同步的,允许null键/值,但只能出现一次)
--Properties 可以方便和IO流相结合来使用
Map的常用方法:
- public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
- public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
- public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
- boolean containsKey(Object key/value) 判断集合中是否包含指定的键。
- public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
- public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。
遍历功能:
第一种:(键找值)
Set <K> xxx = map.keySet() 获取包含所有键的Set集合 其实HashMap中的键就相当于一个HashSet
Set<String> keys = map.keySet();
第二种:(键值对)
Set<Map.Entry< k , v >> xxx = map.entrySet() 获取包含所有键值对元素(Entry)的Set集合
Set<Map.Entry<String, String>> set = map.entrySet()
用HashMap存储自定义类型键值
由于HashMap中的键相当于一个HashSet,所以当HashMap中的键是自定义类型的时候,则需要重写hashCode和equals方法以保证元素唯一
其实使用HashSet存储元素的时候,底层是把元素存到Map中的键里面
JDK中新特性:添加元素到集合的of方法:
在List,Map,Set接口中定义了一些重载的静态方法of可以实现多个元素添加到集合中
注意事项:
1.只能使用接口类型调用这些静态方法,实现类去调用则不可以
2.使用of方法将元素添加到集合中后,元素不能在改变
3.Map/Set中不允许出现重复的键/元素,如果有重复元素,则会抛出异常
Debug模式:
1.点断点(希望查看代码执行步骤的开始)
2.以debug模式启动
3.按F8查看执行流程(看调用方法,则按下F7进入方法)
|
|