Map是java中重要的集合框架中的接口,而且在开发者它的子类HashMap使用频率很高;
一个map不能含有相同的keys,每个key对应至少一个结果;
这个接口代替Dictionary类这个抽象类。
map接口提供了三个集合视图,允许一个map的内容被看成是a set of keys, collection of values,or set of key-value mappings. TreeMap使用来保证特殊的顺序,HashMap则不是。
public interface Map<K,V> {
/*
* 返回这个map中key-value的数量;当这个map包含的超过Integer.MAX_VALUE,返回Integer.MAX_VALUE,
*/
int size();
//判断是否为null,即没有key-value mappings
boolean isEmpty();
//检查是否含有指定的key;当传入的key是null 会报NullPointerException;ClassCastException当传入的key是不恰当的类型对于map来说
boolean containsKey(Object key);
//当 这个map中有一个或者多个key对应这个value的时候返回true
boolean containsValue(Object value);
//返回指定key所映射的结果,若没有,则返回null
V get(Object key);
//放入key-value对;如果以前就放入过key,那么新的value会替代掉旧的value
V put(K key, V value);
//移除操作,这是有返回值的。
V remove(Object key);
//将传入的map中所有的键值对映射结果复制到当前map中 ;语义不明确的是当在操作过程中,源map进行了修改
void putAll(Map<? extends K, ? extends V> m);
//清空map,移除所有的键值对
void clear();
//返回key的集合,遍历可用
Set<K> keySet();
//返回结果的集合
Collection<V> values();
//返回键值Entry的Set集合
Set<Map.Entry<K, V>> entrySet();
//map中声明的内部接口,利用泛型,它表示map中key-value对的实体
interface Entry<K,V> {
K getKey();
V getValue();
V setValue(V value);
boolean equals(Object o);
//每个键值对实体都有自己的hashcode
int hashCode();
}
/*
* 返回true,当传入的对象也是map,且这两个map映射结果相同,m1.entrySet().equals(m2.entrySet());
*/
boolean equals(Object o);
/*
*返回当前map的hash code;这个hashcode定义是:这个map中的entrySet()每个 entry的hashcode的和。这确保了m1.equals(m2)意味m1.hashCode()==m2.hashCode()
*/
int hashCode();
}