`
文艺的程序猿
  • 浏览: 102434 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

map containsKey与get方法区别经典总结

    博客分类:
  • JAVA
阅读更多

前提是: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

 

分享到:
评论

相关推荐

    groovy中map的基本操作1

    3) 调用`get()`方法,可以接受一个默认值,如`map.get('a', 0)`,若键不存在则返回默认值。`get(key, default)`调用后,如果key未找到,会将`key-default`对添加到Map中。 例如: ```groovy def map = [a:1, b:2, c...

    map用法总结

    遍历`Map`有多种方法,但最常用的是通过`entrySet()`方法获取键值对的集合,然后使用迭代器进行遍历。 #### 使用`entrySet()` ```java for (Map.Entry, Integer&gt; entry : map.entrySet()) { String key = entry....

    List,set,Map 的用法和区别

    Map 的主要方法有 put、get、containsKey 等。Map 的实现类有 HashMap、Hashtable 等。 总结 List、Set、Map 是 Java 集合框架中的三个非常重要的接口,分别代表有序集合、无序集合和键值对集合。了解这三个接口的...

    JAVA_MAP_+_LIST_SET和MAP的区别+_Map的三种遍历方法

    ### JAVA Map、List、Set 的区别 #### 一、概述 在 Java 集合框架中,`Map`、`List` 和 `Set` 是三种非常重要的数据结构,它们各自有着不同的特性和用途。 - **Map**:主要用于存储键值对(key-value pairs)。键...

    delphi7的map控件

    4. **检查键是否存在**: `ContainsKey`方法可用于检查Map中是否已包含特定的键,返回布尔值。`if Dictionary.ContainsKey('key1') then ...`会判断'key1'是否存在于Map中。 5. **删除元素**: 使用`Remove`方法可...

    map存取数据.do

    - **检查键是否存在**:`containsKey(Object key)`方法用于检查键是否存在于`Map`中。 - **检查值是否存在**:`containsValue(Object value)`方法用于检查值是否存在于`Map`的某个键值对中。 - **移除键值对**:`...

    Map集合笔记

    ### Map集合概述与特点 #### 一、Map集合的特点及概念 Map集合是Java集合框架中的重要组成部分之一,主要用于存储键值对(key-value pairs)。它与Collection接口不同,Collection接口用于存储单个对象,而Map接口...

    java集合MAP三种遍历

    Map的主要方法包括`put`、`get`、`remove`、`containsKey`等。 ### 二、Map的遍历方法 #### 1. 常规遍历:通过`values()`获取值集合 这种方法是最简单也是最直接的方式,它通过调用`Map`的`values()`方法来获取...

    将Map转换成Java实体

    总结起来,将Map转换为Java实体对象是Java开发中常见的需求,我们可以利用Core Java JDK 1.8的泛型和反射来实现这一功能。通过创建一个通用的工具类,我们可以简化代码并提高代码复用性。在使用过程中,需要注意处理...

    通过java反射实现map与bean之间互转

    在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    map增删改查

    例如,如果我们要创建一个存储学生姓名与年龄的Map,可以这样做: ```java Map, Integer&gt; studentAgeMap = new HashMap(); studentAgeMap.put("张三", 20); studentAgeMap.put("李四", 22); ``` 二、Map的删(删除...

    javascript(map功能)

    * containsKey(key) 判断MAP中是否含有指定KEY的元素 * containsValue(value) 判断MAP中是否含有指定VALUE的元素 * values() 获取MAP中所有VALUE的数组(ARRAY) * keys() 获取MAP中所有KEY的数组(ARRAY)

    在JavaScript中实现map对象

    我们的目标是创建一个名为`Map`的构造函数,该函数具备以下方法: - `size()`:返回Map中的元素数量。 - `isEmpty()`:判断Map是否为空。 - `clear()`:清空Map的所有元素。 - `put(key, value)`:向Map中添加或更新...

    JavaMap.rar_arraylist map_collection_java map_javamap_地图 java

    Java Map集合类是Java编程语言中用于存储键值对数据结构的重要接口,它与ArrayList、LinkedList等属于Java集合框架的一部分。在Java中,Map接口不继承Collection接口,而是独立存在,因为它代表的是键值对(key-...

    使用Java反射机制将Map转换为Java对象,支持Boolean、Date类型

    if (map.containsKey(fieldName)) { field.setAccessible(true); Class&lt;?&gt; fieldType = field.getType(); if (fieldType.equals(Date.class)) { Date date = new Date((long) map.get(fieldName)); field.set...

    java中map集合的用法

    Map接口位于`java.util`包下,它定义了一些基本的操作方法,如put、get、remove等。Map集合中常用的实现类有HashMap、TreeMap、LinkedHashMap等,它们各自有不同的特性。 **2. HashMap** HashMap是Map接口的一个...

    浅析Java8 中 Map 接口的新方法

    map.containsKey(key) || map.get(key) == null) { map.put(key, value); } ``` 使用 putIfAbsent() 方法,我们可以将上面的代码简化为: ```java public static Map, List&lt;Integer&gt;&gt; getElementPositions(List...

    Map集合 java

    #### 二、Map集合的关键方法与操作 Map接口提供了多种用于管理键值对的方法,其中最常用的是: - `put(K key, V value)`:向Map中添加一个键值对。 - `get(Object key)`:返回指定键所映射的值。 - `remove(Object...

    Map实现类1

    - 主要方法:包括put、get、remove、containsKey、containsValue、size等,以及清空和复制Map的方法。 2. TreeMap - 数据结构:TreeMap使用红黑树(一种自平衡二叉查找树)来存储键值对,保证了插入、删除和查找...

Global site tag (gtag.js) - Google Analytics