å¨ Java ä¸ï¼Object 对象ç hashCode() æ¹æ³ä¼æ ¹æ®ä¸åç对象çæä¸åçåå¸å¼ï¼é»è®¤æ
åµä¸ä¸ºäºç¡®ä¿è¿ä¸ªåå¸å¼çå¯ä¸æ§ï¼æ¯éè¿å°è¯¥å¯¹è±¡çå
é¨å°å转æ¢æä¸ä¸ªæ´æ°æ¥å®ç°çã
HashCode å
¶å®åªæ¯å¨éè¦ç¨å°åå¸ç®æ³çæ°æ®ç»æä¸ææç¨ï¼æ¯å¦å¨ HashMap å Hashtableä¸ã
HashCode çç¨éæ¯ä¸ºäºæ¹ä¾¿å¿«éå°æ¥æ¾å¯¹è±¡ï¼å½ä½ éåäº hashCode() åï¼HashCode å°±ä¸åæ¯é»è®¤ç对象å
é¨å°åäºï¼èæ¯ä½ èªå·±å®ä¹çä¸ä¸ªå¼ã
举个ä¾åä½ æ许æ´æç½ç¹ï¼åå¦ a å b æ¯ä¸¤ä¸ªå¯¹è±¡ï¼ä½ éåäº equals() æ¹æ³ï¼ä½ çç®çè¯å®æ¯å¸æå®ä»¬ä¸¤ä¸ªç¸çã
ç°å¨æä¸ä¸ª HashMapï¼å®çå¼æ¯è¿æ ·ç map.put(a,c); map ä¸æå
¥äºä¸æ¡æ°æ®ï¼é®æ¯ a å¼æ¯ cï¼ç°è°ç¨ map.get(a) å¯ä»¥è¿å对象 cï¼ä½æ¯è°ç¨ map.get(b); å´ä¸è½è¿å对象 cï¼ èå¨ä½ æå¼å§çå®ä¹ä¸ï¼a å b 两个对象æ¯ç¸ççï¼ç¸çç对象å´å¾ä¸å°ç¸åçç»æï¼è¿æ®µä»£ç å°±ä¸ç¬¦åé»è¾äºãå 为 HashMap æ¯æ ¹æ®é®å¯¹è±¡ç HashCode æ¥è¿è¡å¿«éæ¥æ¾çï¼æä»¥ä½ å¿
é¡»ä¿è¯ a å b è¿ä¸¤ä¸ªç¸å对象ç HashCode ä¹ç¸åï¼å æ¤ä½ éè¦éå hashCode() æ¹æ³ãå¦å¤ï¼å¦æä½ è¦ç¨å° HashSetï¼å¨è¿ä¸ªä¾åä¸ a å b å¯ä»¥åæ¶æå
¥å° HashSet ä¸ï¼ç¶èè¿ä¸¤ä¸ªå¯¹è±¡å¨é»è¾ä¸ææ¶ç¸ççï¼è¿ä¸ç¬¦å HashSet çå®ä¹ã
æ»ä¹ï¼éå hashCode æ¯ä¸ºäºè®© Java ä¸ææ使ç¨å° Hash ç®æ³çæ°æ®ç»æè½å¤æ£å¸¸è¿è¡ï¼å½ç¶å¦æä½ ä¿è¯ä½ çç¨åºä¸å®å
¨ä¸ä¼ç¨å° Hash ç®æ³ï¼é£ä¹ä½ ä¹å¯ä»¥ä¸ç¨éåã
温馨提示:答案为网友推荐,仅供参考