问:java中Map与HashMap 的关系是什么?
答:Map是一个接口,HashMap是Map的实现类之一。
Entry 与 Map
java.util.Map.Entry<K, V>
interface Entry<K,V>
类似于cpp中的pair。
template<class _T1, class _T2>
struct pair
{
_T1 first;
_T2 second;
}
都是map容器的基本元素。拥有的函数有:
K getKey(); V getValue(); V setValue(V value); boolean equals(Object o);
HashMap中的键类型与值类型都必须为引用类型而不能为基本类型。(好坑啊)
已有的键值对放进去不会报错.
已有的键,放不同的值,新来的会覆盖掉以前的.
各种成员方法:
Modifier and Type | Method and Description |
void | clear() |
Removes all of the mappings from this map. | |
Object | clone() |
Returns a shallow copy of this HashMap instance: the keys and values themselves are not cloned. | |
boolean | containsKey(Object key) |
Returns true if this map contains a mapping for the specified key. | |
boolean | containsValue(Object value) |
Returns true if this map maps one or more keys to the specified value. | |
Set<Map.Entry<K,V>> | entrySet() |
Returns a Set view of the mappings contained in this map. | |
V | get(Object key) |
Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key. | |
boolean | isEmpty() |
Returns true if this map contains no key-value mappings. | |
Set<K> | keySet() |
Returns a Set view of the keys contained in this map. | |
V | put(K key, V value) |
Associates the specified value with the specified key in this map. | |
void | putAll(Map<? extends K,? extends V> m) |
Copies all of the mappings from the specified map to this map. | |
V | remove(Object key) |
Removes the mapping for the specified key from this map if present. | |
int | size() |
Returns the number of key-value mappings in this map. | |
Collection<V> | values() |
Returns a Collection view of the values contained in this map. |