Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射,Map中的key不要求有序,不允许重复。value同样不要求有序,但可以重复。最常见的Map实现类是HashMap,他的储存方式是哈希表,优点是查询指定元素效率高。
Map接口提供了将键映射到集合的对象,一个映射不能包含重复的键.
每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法,如clear()方法,isEmpty()方法,Size()方法等.
1、Map接口和Collection接口没有继承关系。
2、Map集合以key和value(键值对)的方式存储数据。
key和value都是引用数据类型,存储的都是对象的内存地址。
key起到主导的地位,value是key的一个附属品。
3、Map集合中key是唯一的,即所有键值对的key部分都不相同。
Map集合中不同键值对的value是可以相同的。
例如:<key1, value1>,<key2, value1>。
往Map集合中添加key已经存在的新键值对,会覆盖原来的键值对。
4、Map接口中常用的方法:
Map属于接口,接口中的方法为抽象方法,public abstract可以省略。
(1)V put(K key, V value);
向集合中添加元素。
(2)V get(Object key);
通过指定key获取value。
(3)int size();
获取集合中元素的个数。
(4)void clear();
清空集合,元素个数变为0。
(5)boolean isEmpty();
判断集合元素个数是否为0。
(6)boolean containsKey(Object key);
判断集合中是否包含指定key。
(7)boolean containsValue(Object value);
判断集合中是否包含指定value。
注意:contains()方法底层都调用了equals()方法,再次强调存入集合元素的类一定要重写equals()方法。
(8)Set<泛型> keySet();
获取集合中所有的key,返回一个包含所有key元素的Set集合。
(9)Collection values();
获取集合中所有的value,返回一个包含所有value元素的Collection集合。
(10)V remove(Object key);
删除指定key的键值对。
(11)default boolean replace(K key, V oldValue, V newValue);
修改键值对<key, oldValue>的value为newValue。
(12)Set<Map.Entry<K,V>> entrySet();
将Map集合转换成Set集合。
Map集合中每个键值对组成一个元素(key=value),存入Set集合,每个元素的类型是Map.Entry<K,V>。