HashMap
1. 构造器
1.1. HashMap()
构造一个默认初始容量(16)和默认加载因子(0.75)的HashMap
。
1.2 HashMap(int initialCapacity)
构造一个指定初始容量和默认加载因子(0.75)的HahMap
。
1.3 HashMap(int initialCapacity, float loadFactor)
2. 方法
2.1. size
public int size()
返回在map中的 key-value 数量。
2.2. isEmpty
public boolean isEmpty()
如果map中不包含key-value,则返回true
。
2.3. get
public V get (Object key)
返回指定key在map中对应的value,如果map中没有此key,返回null
。
2.4. ContainsKey
public boolean containsKey(Object key)
如果map中包含key值,返回true
。
2.5. put
public V put(K key, V value)
将指定key-value添加到map中,如果map中已经包含key值相关的映射,则替换旧value。
2.6. putAll
public void putAll(Map<? extends K,? extends V> m)
将指定map中的所有mappings复制到当前map中,如果当前map中已经存在指定map中的key,则会被替换。
2.7. Remove
public V remove(Object key)
如果map中存在指定key,则将其删除。
2.8. clear
public void clear()
删除map中的所有mappings。
2.9. containsValue
public boolean containsValue(Object value)
如果map中包含一个或者多个指定value的key-value,返回true
。
2.10. keySet
public Set<K> keySet()
返回map中所有key组成的的Set<K>
。
2.11 values
public Collection<V> values()
返回:a view of the values contained in this map。
2.12 entrySet
public Set<Map.Entry<K,V>> entrySet()
返回map中映射关系的set view。
2.13 computeIfAbsent
public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
computeIfAbsent()
方法对 `hashMap 中指定 key 的值进行重新计算,如果不存在这个 key,则添加到 hashMap 中。
2.14 computeIfPresent
public V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
computeIfPresent() 方法对 hashMap 中指定 key 的值进行重新计算,前提是该 key 存在于 hashMap 中。
2.15 compute
2.16 merge
public V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
merge() 方法会先判断指定的 key 是否存在,如果不存在,则添加键值对到 hashMap 中。
2.17 clone
public Object clone()
clone() 方法用于复制一份 hashMap,属于浅拷贝。
拓展:
浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存, 所以如果其中一个对象改变了这个地址,就会影响到另一个对象。
浅拷贝对应的就是深拷贝,深拷贝是将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象,且修改新对象不会影响原对象。