对于Map接口源码的理解解读

本文深入探讨了Map接口中的主要方法,包括size()、isEmpty()、containsKey()、containsValue()、get()、put()、remove()、putAll()、clear()以及keySet()、values()和entrySet()等。同时,详细阐述了这些方法可能抛出的异常,如UnsupportedOperationException、ClassCastException和NullPointerException等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Map接口中包含以下常用的方法

 1.  int   size() 返回的为int 如果超过返回也是int最大类型 2的31次方减1;
 2.  boolean isEmpty() 判断Map集合是否为空,是否含有映射,没有映射就返回为空;
 3.  boolean containsKey(Object key); 
     判断map结合中的映射是否含有这个key,若含有这个则返回true,若没有返回false,同时若key 为空,则为空指针异常;
 4.  boolean containsValue(Object value); 
     判断map结合中的映射是否含有这个value,若含有这个则返回true,若没有则返回false,若传入的value为空,则报空指针异       常;
 5.  Value get(Object key);  其中返回的Value值,对于 根据确切的key 返回Value,若map映射中没有key所对应的Value,
      则返回空;若key中所对应的Value为 null,则返回的值为 null,不允许没有这个映射,其中的Key不能为空,若为空则会报空       指针异常。
 6.  Value(类型) put(K key, V value); 往集合中put放入Key和Value,其中If the map previously contained a mapping for
     the key, the old value is replaced by the specified value.(源码) 如果map集合中对于原先已经有的Key,在put新的Value,       则新的Value会被代替;
     注意事项:若对于Put来说存在如下几个异常 
     1.UnsupportedOperationException 若在Map集合中的put操作不被允许,则会报出此异常,此异常多存在于集合操作中
     2.ClassCastException 类型转化异常 如果这个集合中的Key和value不被Map所规定的类型不允许的情况下,会报此异常;
     3.NullPointerException 空指针异常  若对于其中的key或value为空,则会报空指针异常;
    4.IllegalArgumentException 参数类型错误 源码注释(if some property of the specified key or value prevents it from being            stored in this map)防止多种类型的key或value存储在Map集合中
 7.  Value(类型) remove(Object key); 移除集合中键值(Removes the mapping) 移除映射
     注意事项:若对于remove来说存在如下几个异常 
     1.UnsupportedOperationException 若在Map集合中的remove操作不被允许,则会报出此异常,此异常多存在于集合操作中
     2.ClassCastException 类型转化异常 如果这个集合中的Key和value不被Map所规定的类型不允许的情况下,会报此异常;
     3.NullPointerException 空指针异常  若对于其中的key或value为空,则会报空指针异常;
 8.  void putAll(Map<? extends K, ? extends V> m); 将另一个的Map映射拷贝到这个Map映射,Map集合中的类型必须相同,
     注意事项:若对于Put来说存在如下几个异常 
     1.UnsupportedOperationException 若在Map集合中的putAll操作不被允许,则会报出此异常,此异常多存在于集合操作中
     2.ClassCastException 类型转化异常 如果这个集合中的Key和value不被Map所规定的类型不允许的情况下,会报此异常;
     3.NullPointerException 空指针异常  若对于其中的key或value为空,则会报空指针异常;
     4.IllegalArgumentException 参数类型错误
 9.  void clear(); 清除所有的映射  会出现的异常:UnsupportedOperationException 若在Map集合中的clear操作不被允许
10. Set<K> keySet(); 返回此映射中所包含的键的 set 视图 支持移除的操作,而不支持添加的操作,也就是说当map集合移除            时,则回对返回的Set集合产生影响,源码注释(The set supports element removal, which removes the corresponding                mapping from the map, via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>, <tt>removeAll</tt>, <tt>retainAll</tt>, and               <tt>clear</tt> operations.  It does not support the <tt>add</tt> or <tt>addAll</tt>operations.)该集合受映射的支持,所以映        射的变化也反映在该集合中,反之亦然。该集合支持元素的移除,
      通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作,从该映射中移除相应的映射关系它不支持 add 或          addAll 操作;
 11.Collection<V> values();  返回Map映射中所包含值的Collection集合试图 该集合受映射的支持,所以映射的变化也反映在该集       合中,反之亦然。该集合支持元素的移除,
      通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作,从该映射中移除相应的映射关系。
      它不支持 add 或 addAll 操作;
 12.Set<Map.Entry<K, V>> entrySet(); 返回的一个set视图,其中是将每一个Map键值对放在Set集合中

 其中Map集合中还包含着一个 interface Entry<K,V> 接口;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值