2020 10.8曾宇欣
Map集合
Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的ley,另一组保存着Map的value。
map集合的作用
和查字典类似,通过key找到对应的value,通过页数找到对应的信息。用学生类来说,key相当于学号,value对应name,age,sex等信息。用这种对应关系方便查找。
Map和Set的关系
可以说关系是很密切了,虽然Map中存放的时键值对,Set中存放的是单个对象,但如果把value看做key的附庸,key在哪里,value就在哪里,这样就可以像对待Set一样来对待Map了。事实上,Map提供了一个Entry内部类来封装key-value对,再计算Entry存储时则只考虑Entry封装的key。
如果把Map集合里的所有value放在一起来看,它们又类似于一个List,元素可以重复,每个元素可以根据索引来找,只是Map中的索引不再是整数值,而是以另一个对象作为索引。
Map中的常用方法:
-
void clear()
:删除该Map对象中所有键值对; -
boolean containsKey(Object key)
:查询Map中是否包含指定的key值; -
boolean containsValue(Object value)
:查询Map中是否包含一个或多个value; -
Set entrySet()
:返回map中包含的键值对所组成的Set集合,每个集合都是Map.Entry对象。 -
Object get()
:返回指定key对应的value,如果不包含key则返回null; -
boolean isEmpty()
:查询该Map是否为空; -
Set keySet()
:返回Map中所有key组成的集合; -
Collection values()
:返回该Map里所有value组成的Collection。 -
Object put(Object key,Object value)
:添加一个键值对,如果集合中的key重复,则覆盖原来的键值对; -
void putAll(Map m)
:将Map中的键值对复制到本Map中; -
Object remove(Object key)
:删除指定的key对应的键值对,并返回被删除键值对的value,如果不存在,则返回null; -
boolean remove(Object key,Object value)
:删除指定键值对,删除成功返回true; -
int size()
:返回该Map里的键值对个数;内部类Entry
Map中包括一个内部类Entry,该类封装一个键值对,常用方法:
Object getKey()
:返回该Entry里包含的key值;Object getvalue()
:返回该Entry里包含的value值;Object setValue(V value)
:设置该Entry里包含的value值,并设置新的value值。
java8为Map新增的方法
Object compute(Object key,BiFurcation remappingFunction):
使用remappingFunction根据原键值对计算一个新的value,只要新value不为null,就覆盖原value;如果新value为null则删除该键值对,如果同时为null则不改变任何键值对,直接返回null。Object computeIfAbsent(Object key,Furcation mappingFunction):
如果传给该方法的key参数在Map中对应的value为null,则使用mappingFunction根据key计算一个新的结果,如果计算结果不为null,则计算结果覆盖原有的value,如果原Map原来不包含该Key,那么该方法可能会添加一组键值对。
心得体会
学习的内容越来越难,昨天的刚搞懂,今天就又学新内容了,感觉有些跟不上了。
评论留言