亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

理解HashSet里為什么value不是null

 更新時(shí)間:2021年09月15日 14:23:20   作者:JavaEdge.  
你有沒(méi)有想過(guò)Java中HashSet的Value為什么要存PRESENT而不是Null?帶著這個(gè)疑問(wèn)來(lái)看下邊的文章尋找答案吧

最近面試,遇到一些關(guān)于 HashSet 的不尋常的八股

HashSet底層的value為啥不是一個(gè) null呢,效率不是更高,還省得創(chuàng)建對(duì)象了?

那我們先來(lái)看下,這個(gè) value 何時(shí)會(huì)被用到呢?

HashSet#add

直接調(diào)用的HashMap#put

若HashMap#put:

  • 成功,則返回null
  • 失敗,說(shuō)明key已存在,就返回該key的value

綜上,若底層hashmap的value維護(hù)的是null,則 HashMap#put 成功或失敗都會(huì)返回null,則 HashSet#add 每次返回值都是true,就無(wú)法確認(rèn)add是否成功了。

HashSet#remove

HashSet的remove依舊直接使用HashMap#remove

HashMap#remove會(huì)返回value,所以若底層value都存null,就無(wú)法區(qū)分是否移除成功。

到此這篇關(guān)于理解HashSet里為什么value不是null的文章就介紹到這了,更多相關(guān)Java HashSet內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論