目录
Map特性
- Map也是集合的一种,由键和值组成——{键:值}。如果熟悉python的人可能就很熟悉了,这不就是python里面的字典吗?json也是这种结构。在Java中这种结构被称为Map映射。
- 在Map中一个键只能对应一个值,一个值却能对应多个键。即键是唯一的不能重复,但是值可以重复——C只能对应一个值3,但是值3能对应键C和键D。对同一个键调用两次put,后面的put会取代前面的值。
- 集合框架不认为映射本身是一个集合,不过可以得到映射视图(view)——这是实现了Collection接口或某个子接口的对象。映射的三种视图:
映射的三种视图的返回方式
Set<K> keySet()
键的集合 Collection<V> valus() 值的集合(不是一个集合) Set<Mep.entry<K,V>> entrySet() 键/集对的集合遍历键值对集的方法:
for(Map.Entry<String,Employee> entry : staff.entrySet()) {
...
}
曾经最高效的方法 consts.forEach((k,v) -> {
...
})
最高效得方法 先Set<K> keySet() 取得键的集合,再通过键查找值maps.get(key) 最简单得方法
- 集合框架不认为映射本身是一个集合,不过可以得到映射视图(view)——这是实现了Collection接口或某个子接口的对象。映射的三种视图:
Map编程思想
- 由Map的关联性可以得到,Map的键和值有着强关联性。所以我们在需要储存具有强关联性的两个值时就需要用到Map。
- 由于Map的键唯一性,我们就可以储存不可重复的值。例如一个员工对象,员工Id是唯一值,所以就可以通过员工Id对应员工对象建立Map映射{Id:employee};商品数量以及总价格{count:totalPrice}
Map遍历方式
如果我们要返回一个有