星海

集合 · 单选题 · 第 13 题

Java 后端开发面试 · 第 13 题

关于 null 键和 null 值,下列说法正确的是?

  1. AHashMap 和 ConcurrentHashMap 都允许 null 作为键,也都允许 null 作为值
  2. BHashMap 和 ConcurrentHashMap 都不允许 null 键,但都允许把 null 作为值存入
  3. CHashMap 允许一个 null 键和多个 null 值;ConcurrentHashMap 的键和值都不能为 null
  4. DHashMap 允许 null 键但不允许 null 值,ConcurrentHashMap 则只允许 null 值

答案

C C. HashMap 允许一个 null 键和多个 null 值;ConcurrentHashMap 的键和值都不能为 null

解析

HashMap 把 null 键的哈希值算作 0,放在 0 号桶。ConcurrentHashMap 禁止 null,是因为并发环境下 get 返回 null 时,无法区分「键不存在」和「值就是 null」,又没法像单线程那样再调 containsKey 确认。Hashtable 同样不允许 null。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。