前提是:Map可以出现在k与v的映射中,v为null的情况, 所以containsKey出现更加必要!!
Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断,例如下面的例子。
下面的代码首先创建一个由HashMap类实现的Map集合,并依次向Map集合中添加一个值对象为null和“马先生”的映射;然后分别通过get()和containsKey()方法执行这两个键对象;最后执行一个不存在的键对象。关键代码如下:
<span style="font-size:18px;">import java.util.HashMap; import java.util.Map; public class TestMapKey { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(220180, null); map.put(220181, "马先生"); System.out.println("get()方法的返回结果:"); System.out.print("------ " + map.get(220180)); System.out.print(" " + map.get(220181)); System.out.println(" " + map.get(220182)); System.out.println("containsKey()方法的返回结果:"); System.out.print("------ " + map.containsKey(220180)); System.out.print(" " + map.containsKey(220181)); System.out.println(" " + map.containsKey(220182)); } } </span>
执行上面的代码,在控制台将输出如下信息:
get()方法的返回结果:
------ null 马先生 null
containsKey()方法的返回结果:
------ true true false
结论:Map集合中不应该利用get()方法来判断是否存在某个键,因为可能map的key值存在但value的值为null
相关推荐
3) 调用`get()`方法,可以接受一个默认值,如`map.get('a', 0)`,若键不存在则返回默认值。`get(key, default)`调用后,如果key未找到,会将`key-default`对添加到Map中。 例如: ```groovy def map = [a:1, b:2, c...
遍历`Map`有多种方法,但最常用的是通过`entrySet()`方法获取键值对的集合,然后使用迭代器进行遍历。 #### 使用`entrySet()` ```java for (Map.Entry, Integer> entry : map.entrySet()) { String key = entry....
Map 的主要方法有 put、get、containsKey 等。Map 的实现类有 HashMap、Hashtable 等。 总结 List、Set、Map 是 Java 集合框架中的三个非常重要的接口,分别代表有序集合、无序集合和键值对集合。了解这三个接口的...
### JAVA Map、List、Set 的区别 #### 一、概述 在 Java 集合框架中,`Map`、`List` 和 `Set` 是三种非常重要的数据结构,它们各自有着不同的特性和用途。 - **Map**:主要用于存储键值对(key-value pairs)。键...
4. **检查键是否存在**: `ContainsKey`方法可用于检查Map中是否已包含特定的键,返回布尔值。`if Dictionary.ContainsKey('key1') then ...`会判断'key1'是否存在于Map中。 5. **删除元素**: 使用`Remove`方法可...
- **检查键是否存在**:`containsKey(Object key)`方法用于检查键是否存在于`Map`中。 - **检查值是否存在**:`containsValue(Object value)`方法用于检查值是否存在于`Map`的某个键值对中。 - **移除键值对**:`...
### Map集合概述与特点 #### 一、Map集合的特点及概念 Map集合是Java集合框架中的重要组成部分之一,主要用于存储键值对(key-value pairs)。它与Collection接口不同,Collection接口用于存储单个对象,而Map接口...
Map的主要方法包括`put`、`get`、`remove`、`containsKey`等。 ### 二、Map的遍历方法 #### 1. 常规遍历:通过`values()`获取值集合 这种方法是最简单也是最直接的方式,它通过调用`Map`的`values()`方法来获取...
总结起来,将Map转换为Java实体对象是Java开发中常见的需求,我们可以利用Core Java JDK 1.8的泛型和反射来实现这一功能。通过创建一个通用的工具类,我们可以简化代码并提高代码复用性。在使用过程中,需要注意处理...
在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...
例如,如果我们要创建一个存储学生姓名与年龄的Map,可以这样做: ```java Map, Integer> studentAgeMap = new HashMap(); studentAgeMap.put("张三", 20); studentAgeMap.put("李四", 22); ``` 二、Map的删(删除...
* containsKey(key) 判断MAP中是否含有指定KEY的元素 * containsValue(value) 判断MAP中是否含有指定VALUE的元素 * values() 获取MAP中所有VALUE的数组(ARRAY) * keys() 获取MAP中所有KEY的数组(ARRAY)
我们的目标是创建一个名为`Map`的构造函数,该函数具备以下方法: - `size()`:返回Map中的元素数量。 - `isEmpty()`:判断Map是否为空。 - `clear()`:清空Map的所有元素。 - `put(key, value)`:向Map中添加或更新...
Java Map集合类是Java编程语言中用于存储键值对数据结构的重要接口,它与ArrayList、LinkedList等属于Java集合框架的一部分。在Java中,Map接口不继承Collection接口,而是独立存在,因为它代表的是键值对(key-...
if (map.containsKey(fieldName)) { field.setAccessible(true); Class<?> fieldType = field.getType(); if (fieldType.equals(Date.class)) { Date date = new Date((long) map.get(fieldName)); field.set...
Map接口位于`java.util`包下,它定义了一些基本的操作方法,如put、get、remove等。Map集合中常用的实现类有HashMap、TreeMap、LinkedHashMap等,它们各自有不同的特性。 **2. HashMap** HashMap是Map接口的一个...
map.containsKey(key) || map.get(key) == null) { map.put(key, value); } ``` 使用 putIfAbsent() 方法,我们可以将上面的代码简化为: ```java public static Map, List<Integer>> getElementPositions(List...
#### 二、Map集合的关键方法与操作 Map接口提供了多种用于管理键值对的方法,其中最常用的是: - `put(K key, V value)`:向Map中添加一个键值对。 - `get(Object key)`:返回指定键所映射的值。 - `remove(Object...
- 主要方法:包括put、get、remove、containsKey、containsValue、size等,以及清空和复制Map的方法。 2. TreeMap - 数据结构:TreeMap使用红黑树(一种自平衡二叉查找树)来存储键值对,保证了插入、删除和查找...