而ConcurrentHashMap 就不一样了,因为 ConcurrentHashMap 使用的场景是多线程,所以它的情况更加复杂。 我们假设 ConcurrentHashMap 可以存入 null 值,有这样一个场景,现在有一个线程 A 调用了 concurrentHashMap.containsKey(key),我们期望返回的结果是 false,但在我们调用 concurrentHashMap.containsKey(key) 之后,未...
【Java面试】最近小伙伴说,总被问道到:为什么ConcurrentHashMap不允许插入null值?今天轻松带你搞明白! 7527 164 60:02:36 App 【全568集】强推!B站目前最全最细的Python零基础全套教程,2024最新版,包含所有干货!逼自己一个月学完,小白轻松变大神!从入门到就业这一套就够啦! 3.4万 6 0:38 App 一个项目,让...
这就要从 ConcurrentHashMap 的使用场景说起了,在 Java 中,ConcurrentHashMap 是用于并发环境中执行的线程安全的容器,而 HashMap 是用于单线程环境下执行的非线程安全的容器,而并发环境下的运行更复杂,如果我们允许 ConcurrentHashMap 的 key 或者是 value 为 null 的情况下,就会存在经典的“二义性问题”。 3.1 ...
线程T2又调用了ConcurrentHashMap 的 put() 方法,插入了一个Key,并且存入的Value是 null(空) 值。
这种现象我们可以认为是线程安全性问题,而ConcurrentHashMap又是一个线程安全的集合,所以自然就不允许key或者value为null。而HashMap中是允许存null的,因为它不需要考虑到线程安全性问题。所以这个问题的核心本质还是ConcurrentHashMap这个并发安全性集合的特性。当然。Doug Lea还认为,不管是否是安全的集合,它都不应该...
ConcurrentMap存储数据,它的key和value都是不能为null的 1.HashMap //key为null value为null HashMap<String,String> hashMap=new HashMap<>(); hashMap.put(null,null); hashMap.put("zhangsan",null); System.out.println(hashMap); //多个key为null ...
ConcurrentHashMap的键值与null 很多同学们可能会以为ConcurrentHashMap不过是HashMap在多线程环境下的版本,底层实现都一致,只是多了加锁的操作,所以二者对于null的允许程度是一样。 如果你是这样想,那可就完全错了,对于ConcurrentHashMap来说,它也不允许存储键值对为null的数据。
ConcurrentHashMap的put方法是通过以下步骤实现的:1. 根据键计算哈希值,确定要插入的桶;2. 获取桶...
java map的key可以为null码 map的key可以为null吗,假定ConcurrentHashMap也可以存放value为null的值。那不管是HashMap还是ConcurrentHashMap调用map.get(key)的时候,如果返回了null,那么这个null,都有两重含义:1.这个key从来没有在map中映射过。2.这个key的value在设置