Hashmap涓環ash绠楁硶鍓栨瀽

Posted 椋為鐨勫ぇJava

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hashmap涓環ash绠楁硶鍓栨瀽相关的知识,希望对你有一定的参考价值。

鐩镐俊寰堝浜洪兘鐭ラ亾锛屽湪JDK8涓紝HashMap鐨勫閲忔€绘槸2鐨刵娆″箓锛岄偅涔堣繖涔堣璁$殑鐩殑绌剁珶鏄粈涔堝憿锛熸垜鍙笉鍙互灏嗛粯璁ょ殑鍒濆瀹归噺浠?6鏀规垚20鍛紝鎵╁鐨勬椂鍊欐垜鍙笉鍙互灏嗘墿瀹逛袱鍊嶆敼鎴愭墿瀹?鍊嶆垨鑰?.5鍊嶅憿锛?/p>


鍓嶆湡鐭ヨ瘑鍑嗗


浠€涔堟槸 ^ 

鍦↗ava閲岋紝 ^ 鏄綅杩愮畻鐨勪竴绉嶏紝 鍙仛浜︽垨杩愮畻銆傚畠鏄拡瀵逛簩杩涘埗鐨勪竴绉嶈繍绠楁柟寮忥紝鍏蜂綋鐨勮繍绠楄鍒欐槸锛?span>鐩稿悓鐨勪负0锛屼笉鍚岀殑涓?銆?/span>


涓嬮潰鎴戜滑鏉ヤ妇涓煂?br>

璁$畻2^3鐨勭粨鏋溿€?br>

棣栧厛鎴戜滑灏? 鍜?3 杞崲涓轰簩杩涘埗鐨勮〃鐜版柟寮忥紝濡備笅锛?br>

2    鈥斺€?gt;  0010

3    鈥斺€?gt;  0011

閭d箞鏍规嵁涓婇潰鎻忚堪鐨勮繍绠楄鍒欙紝缁撴灉灏辨槸0001锛岃浆鎹㈡垚鍗佽繘鍒剁粨鏋滃氨鏄?銆?/p>

鎬庝箞鏍凤紝鏄笉鏄緢濂界悊瑙c€?/p>


浠€涔堟槸 & 

鍦↗ava閲岋紝 & 涔熸槸浣嶈繍绠楃殑涓€绉嶏紝 鍙仛涓庤繍绠椼€傚畠鏄拡瀵逛簩杩涘埗鐨勪竴绉嶈繍绠楁柟寮忥紝鍏蜂綋鐨勮繍绠楄鍒欐槸锛?span>鍙鏈変竴涓负0锛屽氨涓?/span>0銆?/span>


涓嬮潰鎴戜滑杩樻槸鏉ヤ妇涓煂?br>

璁$畻2&3鐨勭粨鏋溿€?br>

棣栧厛鎴戜滑灏? 鍜?3 杞崲涓轰簩杩涘埗鐨勮〃鐜版柟寮忥紝濡備笅锛?br>

2    鈥斺€?gt;  0010

3    鈥斺€?gt;  0011

閭d箞鏍规嵁涓婇潰鎻忚堪鐨勮繍绠楄鍒欙紝缁撴灉灏辨槸0010锛岃浆鎹㈡垚鍗佽繘鍒剁粨鏋滃氨鏄?銆?/p>


浠€涔堟槸 >>>

鍦↗ava閲岋紝 >>>  鍙仛鏃犵鍙峰彸绉昏繍绠椼€傚畠鏄拡瀵逛簩杩涘埗鐨勪竴绉嶈繍绠楁柟寮忥紝鍏蜂綋鐨勮繍绠楄鍒欐槸锛?span>蹇界暐绗﹀彿浣嶏紝鍚戝彸绉诲姩n浣嶏紝绌轰綅閮戒互0琛ラ綈銆?/span>



涓嬮潰鎴戜滑鏉ヤ妇涓煂?br>

璁$畻16>>>2鐨勭粨鏋溿€?br>

棣栧厛鎴戜滑灏?6 杞崲涓轰簩杩涘埗鐨勮〃鐜版柟寮忥紝濡備笅锛?br>

16    鈥斺€?gt;  0001 0000

閭d箞鏍规嵁涓婇潰鎻忚堪鐨勮繍绠楄鍒欙紝鎴戜滑闇€瑕佸皢杩欎釜浜岃繘鍒舵暟鍙崇Щ涓や綅锛岀┖浣嶄互0琛ラ綈锛岄偅涔堜笅闈㈡垜鐢ㄤ竴寮犲浘鏉ユ紨绀猴紱

濡備笂鍥炬墍绀猴紝绾㈡鍐呮槸鎴戜滑闇€瑕佺殑缁撴灉锛岀涓€琛屼负16浠h〃鐨勪簩绾у埗鐨勫師濮嬪€硷紝绗簩琛屽皢鍏跺彸绉讳袱浣嶏紝鍙戠幇鏈€鍚庝袱浣?绉诲嚭绾㈡锛岄偅涔堥珮浣嶅氨缂轰袱浣嶏紝鎴戜滑鎸夌収瑙勫垯锛岀敤0灏嗗叾琛ラ綈锛屽緱鍒扮涓夎鐨勬暟鎹紝閭d箞绗笁琛屾暟鎹唬琛ㄧ殑鍊煎氨鏄?6>>>2鐨勭粨鏋滐紝鎴戜滑灏嗗叾杞寲涓哄崄杩涘埗锛岀粨鏋滀负4銆?/p>

鎵€浠ヨ16>>>2鐨勭粨鏋滀负4銆?/p>


閭d箞鍦↗ava涓紝杩欑绫讳技鐨勪綅杩愮畻杩樻湁寰堝锛屾瘮濡?span class="mq-37">^,&,<<,>>,<<<,>>>绛夛紝鎰熷叴瓒g殑鍚屽鍙互鑷鐧惧害瀛︿範銆?/span>



hash绠楁硶


閭d箞鎺ヤ笅鏉ヨ繘鍏ユ垜浠粖澶╃殑涓婚锛宧ash绠楁硶銆傞鍏堟垜浠潵鐪嬩竴涓嬶紝hashmap涓紝hash绠楁硶鏄浣曞疄鐜扮殑銆?/p>

static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }


閭d箞锛屾垜浠皢涓婅堪浠g爜鐨勫叧閿儴鍒嗘媶瑙f潵鐪嬶紝棣栧厛鎴戜滑鐪嬩竴涓?br>

h = key.hashCode()

杩欐浠g爜娌℃湁浠€涔堢壒娈婄殑鍦版柟锛屽氨鏄眰涓€涓媖ey鐨刪ash鍊笺€?/p>


鎺ヤ笅鏉ユ垜浠湅绗簩娈典唬鐮侊紝

h >>> 16


杩欐浠g爜鐨勫惈涔夊氨鏄皢key鐨刪ash鍊煎彸绉?6浣嶏紝鍏蜂綋鐨勫彸绉绘搷浣滄垜浠湪涓婅堪鐭ヨ瘑鍑嗗涓湁鎻愬埌杩囥€?br>



閭d箞鏁翠綋鏉ョ湅锛?br>

(h = key.hashCode()) ^ (h >>> 16)

杩欐浠g爜鍚箟灏辨槸锛屽皢key鐨刪ash鍊奸珮16浣嶅拰浣?6浣嶈繘琛屾寜浣嶅紓鎴栫殑杩愮畻锛岃繖鏍峰彲浠ヤ繚璇乭ash鍊肩殑楂樹綆16浣嶉兘鍙互鍙備笌杩愮畻锛?span>鍙互鏇村ソ鐨勪繚鐣檋ash鍊兼瘡涓€浣嶆暟鍊肩殑鐗瑰緛锛屼粠鑰屽彲浠ユ洿濂界殑闄嶄綆hash鍐茬獊銆?/strong>




閭d箞涓轰粈涔堥噰鍙?^ 杩愮畻锛岃€屼笉鏄噰鍙?& 鎴栬€?| 杩愮畻浜嗭紝杩欐牱涓嶆槸涔熷彲浠ヤ繚鐣欓珮浣庡崄鍏綅鐨勭壒寰佷箞锛熷ぇ瀹跺彲浠ユ€濊€冧竴涓嬶紝鏈夋兂娉曠殑鍚屽涔熷彲浠ュ湪涓嬫柟鐣欒█銆?/p>




鐜板湪鎴戜滑鐭ラ亾浜咹ashMap涓環ash绠楁硶鐨勭粏鑺傦紝閭d箞鏂囩珷寮€澶寸殑闂浣犳槸鍚︽湁鎬濊矾鍛紝鎴戜滑灏嗗湪涓嬩竴绡囨枃绔犱腑杩涜瑙g瓟銆?/p>







以上是关于Hashmap涓環ash绠楁硶鍓栨瀽的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core绠¢亾娣卞害鍓栨瀽锛?锛夛細绠¢亾鏄浣曞鐞咹TTP璇锋眰鐨勶紵

鍥剧殑绠楁硶---寮楁礇浼婂痉绠楁硶

涓€绔欐敹褰曡绠楁満鐭ヨ瘑浣撶郴锛氱畻娉曘€佹搷浣滅郴缁熴€佹暟鎹簱銆佺紪绋嬪疄璺点€佺郴缁熻璁$瓑

绠楁硶鏁版嵁缁撴瀯01 /绠楁硶鏁版嵁缁撴瀯姒傝堪

鎷撳睍KMP绠楁硶 鍏ラ棬+妯℃澘

銆愬崄澶╄嚜鍒惰蒋娓叉煋鍣ㄣ€慏AY 02锛氱敾涓€鏉$洿绾匡紙DDA 绠楁硶 & Bresenham鈥檚 绠楁硶锛?/a>