hashcode和equals的关系

hashcode和equals的关系如下:

总结:hashCode和equals没有什么关系,不过一般重写equals的时候会强制要求重写hashCode避免出bug。



  • JAVA涓负浠涔堜袱涓笉鍚岀殑瀵硅薄hashCode鏈夊彲鑳戒細鐩稿悓?
    绛旓細浣犺鐨勯偅涓ょ 閮芥湁鍙兘鐩稿悓 鎵浠hashCode()鏄笉鍙潬鐨勶紒閭e畠涓嶅彲闈犱负浠涔堣繕瑕佺敤瀹冿紵鍥犱负瀹冭绠楄捣鏉ュ揩鍟婏紒杩欐秹鍙婂埌涓や釜瀵硅薄涔嬮棿鐨勬瘮杈 1.equals()鐩哥瓑鐨勪袱涓璞′粬浠殑hashCode()鑲畾鐩哥瓑锛屼篃灏辨槸鐢╡quals()瀵规瘮鏄粷瀵瑰彲闈犵殑銆2.hashCode()鐩哥瓑鐨勪袱涓璞′粬浠殑equal()涓嶄竴瀹氱浉绛夛紝涔熷氨鏄痟ashCode()涓...
  • java涓噸鍐equals鏂规硶涓轰粈涔堣閲嶅啓hashcode鏂规硶璇存槑
    绛旓細1銆侀噸鍐equals鏂规硶鏃堕渶瑕侀噸鍐hashCode鏂规硶锛屼富瑕佹槸閽堝Map銆丼et绛夐泦鍚堢被鍨嬬殑浣跨敤锛沘: Map銆丼et绛夐泦鍚堢被鍨嬪瓨鏀剧殑瀵硅薄蹇呴』鏄敮涓鐨勶紱b: 闆嗗悎绫诲垽鏂袱涓璞℃槸鍚︾浉绛夛紝鏄厛鍒ゆ柇equals鏄惁鐩哥瓑锛屽鏋渆quals杩斿洖TRUE锛岃繕瑕佸啀鍒ゆ柇HashCode杩斿洖鍊兼槸鍚ure,鍙湁涓よ呴兘杩斿洖ture,鎵嶈涓鸿涓や釜瀵硅薄鏄浉绛夌殑銆2銆佺敱浜嶰bject...
  • java 涓 equals() 鐩哥瓑鐨勪袱涓璞,hashcode() 涓瀹氱浉绛
    绛旓細鍦╦ava涓紝equals鍜宧ashcode鏄湁璁捐瑕佹眰鐨勶紝equals鐩哥瓑锛屽垯hashcode涓瀹氱浉绛夛紝鍙嶄箣鍒欎笉鐒躲備负浣曚細鏈夎繖鏍风殑瑕佹眰锛熷湪闆嗗悎涓紝姣斿HashSet涓紝瑕佹眰鏀惧叆鐨勫璞′笉鑳介噸澶嶏紝鎬庝箞鍒ゅ畾鍛紵棣栧厛浼氳皟鐢╤ashcode锛屽鏋渉ashcode鐩哥瓑锛屽垯缁х画璋冪敤equals锛屼篃鐩哥瓑锛屽垯璁や负閲嶅銆傚鏋滈噸鍐檈quals鍚庯紝濡傛灉涓嶉噸鍐檋ashcode锛屽垯hashcode灏...
  • 涓轰粈涔堝湪閲嶅啓浜equals()鏂规硶涔嬪悗涔熷繀椤婚噸鍐hashCode()鏂规硶
    绛旓細鍥犱负濡傛灉涓嶈繖鏍峰仛鐨勮瘽锛屽氨浼氳繚鍙峅bject.hashCode鐨勯氱敤绾﹀畾锛屼粠鑰屽鑷磋绫绘棤娉曠粨鍚堟墍鏈夊熀浜庢暎鍒楃殑闆嗗悎涓璧锋甯歌繍浣滐紝杩欐牱鐨勯泦鍚堝寘鎷琀ashMap銆丠ashSet鍜孒ashtable銆傚彟澶栧湪搴旂敤绋嬪簭鐨勬墽琛屾湡闂达紝鍙瀵硅薄鐨equals鏂规硶鐨勬瘮杈冩搷浣滄墍鐢ㄥ埌鐨勪俊鎭病鏈夎淇敼锛岄偅涔堝杩欏悓涓涓璞¤皟鐢ㄥ娆★紝hashCode鏂规硶閮藉繀椤诲缁堝涓鍦...
  • 璇锋暀java涓殑hashCode()鏂规硶 鍏蜂綋鏄粈涔堟剰鎬?浣滅敤?涓鑸敤鍦ㄤ粈涔堝湴鏂...
    绛旓細杩斿洖璇ュ璞$殑鍝堝笇鐮鍊笺傛敮鎸佹鏂规硶鏄负浜嗘彁楂樺搱甯岃〃锛堜緥濡 java.util.Hashtable 鎻愪緵鐨勫搱甯岃〃锛夌殑鎬ц兘銆hashCode 鐨勫父瑙勫崗瀹氭槸锛氬湪 Java 搴旂敤绋嬪簭鎵ц鏈熼棿锛屽湪瀵瑰悓涓瀵硅薄澶氭璋冪敤 hashCode 鏂规硶鏃讹紝蹇呴』涓鑷村湴杩斿洖鐩稿悓鐨勬暣鏁帮紝鍓嶆彁鏄皢瀵硅薄杩涜 equals 姣旇緝鏃舵墍鐢ㄧ殑淇℃伅娌℃湁琚慨鏀广備粠鏌愪竴搴旂敤绋嬪簭鐨勪竴娆...
  • 涓轰粈涔堣鍐equals鐨勬椂鍊欎竴瀹氳瑕嗗啓hashCode
    绛旓細3銆 涓轰粈涔equals()鐩哥瓑,hashCode灏变竴瀹氳鐩哥瓑,鑰宧ashCode鐩哥瓑,鍗翠笉瑕佹眰equals鐩哥瓑? 绛旀: - 鍥犱负鏄寜鐓ashCode鏉ヨ闂皬鍐呭瓨鍧,鎵浠ashCode蹇呴』鐩哥瓑銆 - HashMap鑾峰彇涓涓璞℃槸姣旇緝key鐨刪ashCode鐩哥瓑鍜宔qual涓簍rue銆 涔嬫墍浠ashCode鐩哥瓑,鍗村彲浠qual涓嶇瓑,灏辨瘮濡侽bjectA鍜孫bjectB浠栦滑閮芥湁灞炴ame,閭d箞hashCode閮戒互name璁...
  • 涓轰粈涔堥噸鍐欎簡hashcode浠ュ悗,鐢==姣旇緝涓や釜鍚岀被鍨嬬殑瀵硅薄杩樻槸false鍛?_鐧惧害...
    绛旓細==鏄瘮杈冧袱涓彉閲忔槸鍚﹀紩鐢ㄧ殑鍚屼竴涓璞★紝涓庢槸鍚﹂噸鍐欎簡hashCode鎴equals鏃犲叧銆傚洜涓哄浘涓璸1鍜宲2寮曠敤鐨勬槸涓や釜瀵硅薄锛==姣旇緝鐨勭粨鏋滃綋鐒舵槸false銆傚鏋滃皢绗2琛屾敼鎴愶細people p2=p1;==鐨勭粨鏋滃氨鏄痶rue浜嗐傚鏋滆姣旇緝鍊兼槸鍚︾浉绛夛紝寰楅噸鍐檈quals鏂规硶锛堝鏋滅洿鎺ヤ娇鐢ㄤ粠Object绫荤户鎵跨殑equals锛屾瘮杈冪殑杩樻槸寮曠敤锛屼笌==鐩稿悓...
  • equals涓轰粈涔堣閲嶅啓hashcode?
    绛旓細濡傛灉浣犻噸杞戒簡equals锛屾瘮濡傝鏄熀浜庡璞$殑鍐呭瀹炵幇鐨勶紝鑰屼繚鐣hashCode鐨勫疄鐜颁笉鍙橈紝閭d箞寰堝彲鑳芥煇涓や釜瀵硅薄鏄庢槑鏄滅浉绛夆濓紝鑰宧ashCode鍗翠笉涓鏍枫傝繖鏍凤紝褰撲綘鐢ㄥ叾涓殑涓涓綔涓洪敭淇濆瓨鍒癶ashMap銆乭asoTable鎴杊ashSet涓紝鍐嶄互鈥滅浉绛夌殑鈥濇壘鍙︿竴涓綔涓洪敭鍊煎幓鏌ユ壘浠栦滑鐨勬椂鍊欙紝鍒欐牴鏈壘涓嶅埌銆傚鏋滀袱涓璞$殑鍫嗗唴瀛...
  • java 涓崟閾捐〃鐨equals鏂规硶
    绛旓細鑻ユ槸鑷畾涔夌被锛屼竴瀹氳閲嶆柊equals涓hashCode鏂规硶锛屾弧瓒充笂杩癶ashCode鐨2涓叧绯汇備緥濡傝嚜宸辩殑User绫绘湁name鍜宲ass锛屼竴涓畝鍗曠殑鏂规濡備笅锛歱ublic class User{ String name,pass;//get/set...public int hashCode() { return name.hashCode + pass.hashCode();} public boolean equals(Object o) { if(o in...
  • ...绫荤殑equals()鏂规硶鐨勫悓鏃朵负浠蹇呴』瑕嗙洊hashCode()鏂规硶?
    绛旓細浣唄ashCode()鐨勫煎嵈涓嶇浉绛夛紝杩欐牱浣犱娇鐢℉ashTable灏变細鍑虹幇瀛樿繘鍘荤殑涓滆タ鎵句笉鍒般備笉瑕佸拷鐣ヨ繖涓棶棰橈紝鍥犱负HashTable绛夌瓑绫荤敤鐨勯潪甯稿锛屽緢鍙兘灏卞湪涓涓綘涓嶇煡閬撶殑鍦版柟闂存帴鍦扮敤鍒颁簡銆俲ava绫荤殑涓涓師鍒欏氨鏄細浣犲畾涔夌殑浠讳綍绫伙紝閮借鑰冭檻瑕嗙洊equals鍜宧ashCode鏂规硶銆傚惁鍒欎綘鐨勭被灏变笉鑳界粰鍏朵粬浜烘垨鍏朵粬鍦版柟鐢ㄣ
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网