Java SE之Map接口

这里写图片描述

图片引自:http://www.cnblogs.com/wuyuegb2312/p/4458468.html

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();
}
原文地址:https://www.cnblogs.com/Kevin-1992/p/12608424.html