Java SE之Map接口

xiaoxiao2021-02-27  250

图片引自: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.6miu.com/read-9708.html

最新回复(0)