当前位置: 首页 > wzjs >正文

秦皇岛网站制作专家教您简单建站为什么要用CGI做网站

秦皇岛网站制作专家教您简单建站,为什么要用CGI做网站,wordpress php 5.4,网页链接怎么打开Java 集合中 null 值允许情况总结与记忆技巧 一、核心集合对 null 的支持情况 集合类型Key 是否可为 nullValue 是否可为 null原因/备注HashMap✅ 是✅ 是对 null key 有特殊处理(存放在数组第 0 个位置)LinkedHashMap✅ 是✅ 是继承自 HashMapTreeMap…

Java 集合中 null 值允许情况总结与记忆技巧

一、核心集合对 null 的支持情况

集合类型Key 是否可为 nullValue 是否可为 null原因/备注
HashMap✅ 是✅ 是对 null key 有特殊处理(存放在数组第 0 个位置)
LinkedHashMap✅ 是✅ 是继承自 HashMap
TreeMap❌ 否✅ 是依赖 Comparator/Comparable,可能抛 NullPointerException
Hashtable❌ 否❌ 否设计较早,未做 null 处理(直接抛 NullPointerException
ConcurrentHashMap❌ 否❌ 否并发场景下 null 会歧义(如 get(key)返回null时无法区分是不存在还是值为null)
HashSet✅ 是-底层是 HashMap,value 固定为 PRESENT 对象
TreeSet❌ 否-底层是 TreeMap
ArrayList-✅ 是列表允许存储 null
LinkedList-✅ 是同 ArrayList
ArrayDeque-❌ 否作为队列/栈使用时,null 会干扰 poll() 等方法语义

二、记忆技巧(口诀)

1. Map 系列记忆法

"哈林可以,树并不行"

  • 哈(HashMap)、林(LinkedHashMap):允许 null key 和 null value

  • 树(TreeMap)、并(ConcurrentHashMap):不允许 null key

  • Hashtable:老古董,什么都不让用(联想:老顽固)

2. Set 系列记忆法

"Hash 随意,Tree 挑剔"

  • HashSet:允许 null(因为底层是 HashMap)

  • TreeSet:不允许 null(因为底层是 TreeMap)

3. List/Queue 记忆法

"列表宽容,队列严格"

  • ArrayList/LinkedList:允许 null

  • ArrayDeque:不允许 null(避免 poll() 歧义)


三、技术原因深度解析

1. 为什么 HashMap 允许 null?

  • 特殊处理:将 null key 的哈希值固定为 0,存储在数组第 0 个桶。

  • 代码示例(HashMap 的 put 方法):

    java

if (key == null) {return putForNullKey(value); // 特殊处理
}

2. 为什么 TreeMap 不允许 null key?

  • 排序依赖:必须调用 compareTo() 或 compare(),null 无法比较。

  • 代码示例

    java

// 如果 comparator 为 null,使用自然排序
Comparator<? super K> cpr = comparator;
if (cpr == null) {Comparable<? super K> k = (Comparable<? super K>) key; // 这里可能抛 NPE
}

3. 为什么 ConcurrentHashMap 完全禁止 null?

  • 并发歧义

    • 如果允许 null value,无法区分 map.get(key)==null 是"不存在该key"还是"该key的值为null"。

    • 作者 Doug Lea 的解释:"在非并发Map中,可以通过containsKey检查,但并发场景下检查与操作不是原子的"


四、面试高频问题

1. HashMap 如何处理 null key?

  • 存储在数组第 0 个桶(table[0]),哈希值固定为 0。

2. 哪些集合的迭代器可能抛 NullPointerException?

  • TreeMap/TreeSet:如果元素未实现 Comparable 或 Comparator 未处理 null。

3. 如何让 TreeMap 支持 null key?

  • 自定义 Comparator 处理 null:

    java

TreeMap<String, Integer> map = new TreeMap<>((a, b) -> {if (a == null) return -1; // 定义 null 的排序规则if (b == null) return 1;return a.compareTo(b);
});

五、总结表(速记版)

集合类型KeyValue记忆口诀
HashMap哈林可以
LinkedHashMap哈林可以
TreeMap树并不行(Tree不行)
Hashtable老古董
ConcurrentHashMap树并不行(Concurrent不行)
HashSet-Hash 随意
TreeSet-Tree 挑剔
ArrayList-列表宽容
ArrayDeque-队列严格

掌握这些规则和记忆技巧,面试时再也不用担心 null 值问题!


文章转载自:

http://TYHQTugZ.fdrwk.cn
http://LEgJkQiv.fdrwk.cn
http://0JnTI4Xp.fdrwk.cn
http://LkYm0fXD.fdrwk.cn
http://pDcneYyQ.fdrwk.cn
http://zaaRNHKU.fdrwk.cn
http://juyfX3Xw.fdrwk.cn
http://KXG9eP0i.fdrwk.cn
http://lU3rPqn6.fdrwk.cn
http://9rlHVP7T.fdrwk.cn
http://WrZYA3fd.fdrwk.cn
http://fA4Nbn3W.fdrwk.cn
http://wvtcuN0G.fdrwk.cn
http://23uBjoRt.fdrwk.cn
http://PWE9A48R.fdrwk.cn
http://AmHKm3AI.fdrwk.cn
http://r955CjJ7.fdrwk.cn
http://9xadZOvW.fdrwk.cn
http://yVmQwHMb.fdrwk.cn
http://hjrY9fQd.fdrwk.cn
http://WI5RUMS2.fdrwk.cn
http://b8dqksuT.fdrwk.cn
http://blv2UNMU.fdrwk.cn
http://OepGpADo.fdrwk.cn
http://lqyX1cuO.fdrwk.cn
http://pc8CaQoa.fdrwk.cn
http://dRZyMFtw.fdrwk.cn
http://yJfqGSFU.fdrwk.cn
http://6QSnT91j.fdrwk.cn
http://Xz3zeeDK.fdrwk.cn
http://www.dtcms.com/wzjs/696871.html

相关文章:

  • 做网站用虚拟服务器可以吗爱狼戈网站建设
  • 有没有好的做海报的网站智推教育seo课程
  • 建立自己的影视网站品牌vi形象设计公司
  • 兰州网站建设方案搭建手机网站
  • 十堰网站整站优化公司旅游网站建设的重要性
  • 建设无障碍网站广州知名网站建设公司
  • 定制软件的网站数字镭网站开发
  • 重庆招标建设信息网站本地的丹阳网站建设
  • 美食网站建设合同范例微网站模板在线制作
  • wordpress可以企业网站做二手的网站都有哪些
  • 谷歌认证合作伙伴网站建设做网站怎么把背景变成纯色
  • 容桂品牌网站建设杭州公司注册费用
  • 个人博客网站模板wordpresswordpress 百万
  • 网站开发的分工建设工程现行标准查询网站
  • 多页网站模板seo网站优化培
  • 长沙做网站的包吃包住4000局网站建设意见
  • wordpress网站不显示菜单ppt模板简约
  • 网站套用怎么建设小型网站
  • 网站建设问题新闻资讯怎么看得出网站是哪个公司做的
  • 网站对应的ip地址吗如何做英文网站的中文网
  • 网站建设运营方案植物染企业解决方案
  • 网站重新解析网站建站平台eazyshop
  • 六安网站制作人才招聘软件产品设计方案
  • 石家庄网站建设外贸一站式做网站开发
  • iis搭建网站茂名做网站
  • 网站开发怎样实现上传视频外贸网站做排名
  • 北京定制公交网站图案设计网
  • 创造与魔法官方网站做自己软件公司排名100强
  • 怎么看一个网站用什么做的渠道网官网
  • 各大网站的404wordpress的虚拟主机