pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

確保每個(gè) Hashmap 桶/槽一個(gè)值

Ensuring One Value per Hashmap bucket/slot(確保每個(gè) Hashmap 桶/槽一個(gè)值)
本文介紹了確保每個(gè) Hashmap 桶/槽一個(gè)值的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

有沒有辦法嚴(yán)格確保每個(gè)Hashmap桶的條目數(shù)不篡改Java中的object.hashcode()函數(shù)?

Is there a way to strictly ensure the number of entries per Hashmap bucket without tampering the the object.hashcode() function in Java?

負(fù)載因子是一個(gè)平均值:(條目數(shù))/(桶數(shù)).本質(zhì)上,假設(shè)我有一個(gè)容量為 1000 的 Hashmap.為了這個(gè)示例,假設(shè)我使用 1 的負(fù)載因子.我將要存儲(chǔ)在 HashMap 中的 100 個(gè)對(duì)象具有錯(cuò)誤的哈希碼函數(shù),它總是返回每個(gè)對(duì)象的值相同.當(dāng)我存儲(chǔ)完 100 個(gè)對(duì)象后,它們都將映射到同一個(gè) HashMap 存儲(chǔ)桶,我最終會(huì)獲得 LinkedList 的性能.負(fù)載因子將保持沉默,因?yàn)?100 個(gè)條目/1000 個(gè)桶 = 0.1 <1. 現(xiàn)在如果我放置 1 M 個(gè)相同的對(duì)象會(huì)發(fā)生什么.因?yàn)橛肋h(yuǎn)不會(huì)觸發(fā) LF,所以永遠(yuǎn)不會(huì)調(diào)整 HashMap 的大小(無論如何都不會(huì)使用).

The Load Factor is an average: (# of entries) / (# of buckets). In essence, let's say I have a Hashmap of capacity 1000. For the sake of this example, say I use a Load Factor of 1. The 100 objects I'm going to be storing in the HashMap have bad hashcode function which always return the same value for every object. When I'm done storing 100 objects, they will all map of the same HashMap bucket and I eventually end up with LinkedList performance. The Load Factor will sit silent because 100 entries / 1000 buckets = 0.1 < 1. Now what happens if I put 1 M of the same objects. The HashMap will never be resized (no use anyways) as the LF will never be triggered.

我知道這在現(xiàn)實(shí)世界中并不常見,但我想提高我的理解.HashMap 有沒有辦法防止這種情況發(fā)生,或者至少從結(jié)構(gòu)本身得到一些警告?

I know this is an uncommon scenario in real world but would like to improve my understanding. Is there a way in HashMap to prevent this or at least get some warning from the structure itself?

推薦答案

HashMap 總是會(huì)根據(jù) key 的 hash code 計(jì)算出使用哪個(gè)桶.如果每個(gè)鍵具有相同的哈希碼,它們都將映射到同一個(gè)桶.如果不提供更好的 hashCode() 實(shí)現(xiàn),您將無法阻止您描述的行為.

A HashMap will always calculate which bucket to use based on the key's hash code. If each key has the same hash code, they will all map to the same bucket. You cannot prevent the behavior you described without providing a better hashCode() implementation.

您可以查看使用開放尋址的 Map 實(shí)現(xiàn)(例如 Trove 的 THashMap).他們總是每個(gè)桶只有一個(gè)條目.但是性能不會(huì)提高,它們只是以不同的方式處理沖突,而且它們也無法解決您的根本問題:哈希碼錯(cuò)誤.

You could look at Map implementations that use open addressing (e.g. Trove's THashMap). They will always have just one entry per bucket. But the performance will not improve, they just deal with collisions in a different way, and they also won't solve your root problem : a bad hash code.

這篇關(guān)于確保每個(gè) Hashmap 桶/槽一個(gè)值的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Couchbase Bucket authentication error(Couchbase 存儲(chǔ)桶身份驗(yàn)證錯(cuò)誤)
How to setup SDK in IntelliJ IDEA?(如何在 IntelliJ IDEA 中設(shè)置 SDK?)
error importing com.google.android.gms.*;(導(dǎo)入 com.google.android.gms.* 時(shí)出錯(cuò);)
Cannot list image publishers from Azure java SDK(無法從 Azure java SDK 列出圖像發(fā)布者)
How do I know that the Soundpool is ready using SDK target below 2.2?(我如何知道 Soundpool 已準(zhǔn)備好使用低于 2.2 的 SDK 目標(biāo)?)
What is #39;savedInstanceState#39;?(什么是“已保存實(shí)例狀態(tài)?)
主站蜘蛛池模板: 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 泥浆在线密度计厂家-防爆数字压力表-膜盒-远传压力表厂家-江苏大亚自控设备有限公司 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | RFID电子标签厂家-上海尼太普电子有限公司 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 车牌识别道闸_停车场收费系统_人脸识别考勤机_速通门闸机_充电桩厂家_中全清茂官网 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 走心机厂家,数控走心机-台州博城智能科技有限公司 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 德州万泰装饰 - 万泰装饰装修设计软装家居馆 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电| 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 道康宁消泡剂-瓦克-大川进口消泡剂供应商 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | 茅茅虫AI论文写作助手-免费AIGC论文查重_写毕业论文降重 |