本文所有内容参考于
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html新手总结,多为提高自身,大致使用方法可以参考如下,如需深刻理解,请寻找其他相关文章
let't start
First of all 高中英语作文应该很常见ba
- HashMap<k, v>
- 继承了 AbstractMap<K,V>
- 实现的接口有 Map<K,V>, Cloneable, Serializable
-
java支持单继承,多实现
what't more :D
Method Detail
-
size()
-
isEmpty()
-
get(Object key)
-
containsKey(key)
是否存在key -
put(K key, V value)
-
putAll(Map<? extends K, ? extends v>)
hashMap.putAll(newHashMap) -
remove(Object key)
-
clear()
-
containsValue(Object value)
是否存在value -
keySet()
获取返回键的集合 -
values()
获取返回值的集合 -
entrySet()
获取键值对的集合 -
getOrDefault(Object key, V defaultValue)
如果存在key则返回key对应的值,如果没有则直接使用V -
putIfAbsent(K key, V value)
如果key不存在则直接存入key和value,如果key存在则返回对应的value -
remove(Object key, Object value)
key-删除的指定键 value-预期与键绑定的值 -
replace(K key, V oldValue, V newValue)
key-替换的指定键 oldValue-预期与键绑定的值,newValue-替换的值 return:如果替换成功返回true -
replace(K key, V value)
key-替换的指定键 value-替换的值,如果无法找到key,则不做任何操作 -
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
如果key对应的value值为空或key不存在,会将第二个参数的返回值存入并返回 -
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
如果key存在且不为空,计算第二个参数value;如果value有值,则保存,value为null,则会remove(key) -
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
新传入的value不为null就建立映射关系
以上三个带compute前缀方法的详细介绍请参考: https://blog.csdn.net/wsen1229/article/details/81511554
- merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
如果key存在,则执行lambda表达式,表达式入参为oldVal和newVal(neVal即merge()的第二个参数)。表达式返回最终put的val。如果key不存在,则直接putnewVal。
merge和带compute前缀的比较全的解释地址: https://www.jianshu.com/p/68e6b30410b0
- forEach(BiConsumer<? super K,? super V> action)
1:
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
2:
map.forEach((k, v) -> System.out.println("key: " + k + " value:" + v));
- replaceAll(BiFunction<? super K,? super V,? extends V> function)
根据表达式更改value等hashMap.replaceAll((key, oldValue) -> oldValue * oldValue); - clone() 浅拷贝
英文文档看起来着实费劲,在看方法的时候也去参考了下大神的文章,算一个好的开始吧,这篇文章也会不断充实,更新排版,尽可能做到浅显易懂,且对更多人的有帮助