javaÖÐhashcode()ºÍequals()µÄÏê½â(ת)
ÔÌùµØÖ·http://www.javaeye.com/topic/257191
½ñÌìÏÂÎçÑо¿ÁË°ëÌìhashcode()ºÍequals()·½·¨£¬ÖÕÓÚÓÐÁËÒ»µãµãµÄÃ÷°×£¬Ð´ÏÂÀ´Óë´ó¼Ò·ÖÏí£¨zhaoxudong
2008.10.23Íí21.36£©¡£
1. Ê×ÏÈequals()ºÍhashcode()ÕâÁ½¸ö·½·¨¶¼ÊÇ´ÓobjectÀàÖм̳йýÀ´µÄ¡£
equals()·½·¨ÔÚobjectÀàÖж¨ÒåÈçÏ£º
public boolean equals(Object obj) {
return (this == obj);
}
ºÜÃ÷ÏÔÊǶÔÁ½¸ö¶ÔÏóµÄµØÖ·Öµ½øÐеıȽϣ¨¼´±È½ÏÒýÓÃÊÇ·ñÏàͬ£©¡£µ«ÊÇÎÒÃDZØÐèÇå³þ£¬µ±String
¡¢Math¡¢»¹ÓÐInteger¡¢Double¡£¡£¡£¡£µÈÕâЩ·â×°ÀàÔÚʹÓÃequals()·½·¨Ê±£¬ÒѾ¸²¸ÇÁËobjectÀàµÄequals£¨£©·½·¨¡£±È
ÈçÔÚStringÀàÖÐÈçÏ£º
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
ºÜÃ÷ÏÔ£¬ÕâÊǽøÐеÄÄÚÈݱȽϣ¬¶øÒѾ²»ÔÙÊǵØÖ·µÄ±È½Ï¡£ÒÀ´ÎÀàÍÆDouble¡¢Integer¡¢Math¡£¡£¡£¡£µÈµÈÕâЩÀ඼ÊÇÖØдÁË
equals()·½·¨µÄ£¬´Ó¶ø½øÐеÄÊÇÄÚÈݵıȽϡ£µ±È»ÁË»ù±¾ÀàÐÍÊǽøÐÐÖµµÄ±È½Ï£¬Õâ¸öûÓÐʲôºÃ˵µÄ¡£
ÎÒÃÇ»¹Ó¦¸Ã×¢Ò⣬JavaÓïÑÔ¶Ôequals()µÄÒªÇóÈçÏ£¬ÕâЩҪÇóÊDZØÐë×ñѵģº
• ¶Ô³ÆÐÔ£ºÈç¹ûx.equals(y)·µ»ØÊÇ“true”£¬ÄÇôy.equals(x)Ò²Ó¦¸Ã·µ»ØÊÇ“true”¡£
• ·´ÉäÐÔ£ºx.equals(x)±ØÐë·µ»ØÊÇ“true”¡£
•
ÀàÍÆÐÔ£ºÈç¹ûx.equals(y)·µ»ØÊÇ“true”£¬¶øÇÒy.equals(z)·µ»ØÊÇ“true”£¬ÄÇôz.equals(x)Ò²Ó¦¸Ã·µ»ØÊÇ
“true”¡£
•
»¹ÓÐÒ»ÖÂÐÔ£ºÈç¹ûx.equals(y)·µ»ØÊÇ“true”£¬Ö»ÒªxºÍyÄÚÈÝÒ»Ö±²»±ä£¬²»¹ÜÄãÖظ´x.equals(y)¶àÉٴΣ¬·µ»Ø¶¼ÊÇ“true”¡£
• ÈκÎÇé¿öÏ£¬x.equals(null)£¬ÓÀÔ¶·µ»ØÊÇ“false”£»x.equals(ºÍx²»Í¬ÀàÐ͵ĶÔÏó)ÓÀÔ¶·µ»ØÊÇ“false”¡£
ÒÔÉÏÕâÎåµãÊÇÖØ
Ïà¹ØÎĵµ£º
LinkedListÄÚ²¿ÒÔÁ´±íÐÎʽ´æ´¢Êý¾Ý
ArrayListÄÚ²¿ÒÔÊý×éÐÎʽ´æ´¢Êý¾Ý¡£
VectorͬArrayList£¬²»¹ýËüÓëArrayList±È½ÏÆðÀ´ÊÇthread-safeµÄ¡£
HashtableÊǼ̳ÐÁËDictionary£¬ÊÇḬ̈߳²È«µÄ¡£HashMapʵÏÖÁËMap½Ó¿Ú£¬²»ÊÇḬ̈߳²È«µÄ¡£
ÈçºÎ±£Ö¤Ḭ̈߳²È«µÄ£¿Ã¿¸öÐÞ¸ÄÈÝÆ ......
ÔÚJava±àд¾ßÓÐÁ¬¹á±ä»¯µÄ´°¿Ú³ÌÐòʱ£¬Í¨³£µÄ°ì·¨ÊÇÔÚ×ÓÀàÖи²¸Ç¸¸ÀàµÄpaint(Graphics)·½·¨£¬ÔÚ·½·¨ÖÐʹÓÃGUIº¯ÊýʵÏÖ´°¿ÚÖØ»æµÄ¹ý³Ì¡£Á¬¹á±ä»»µÄ´°¿Ú»á²»¶ÏµØµ÷ÓÃupdate(Graphics)º¯Êý£¬¸Ãº¯Êý×Ô¶¯µÄµ÷ÓÃpaint(Graphics)º¯Êý¡£ÕâÑù¾Í»á³öÏÖÉÁ˸µÄÇé¿ö¡£
ΪÁ˽â¾öÕâÒ»ÎÊÌ⣬¿ÉÒÔÓ¦ÓÃË«»º³å¼¼Êõ¡£¿ÉÒÔͨ¹ý½ØÈ¡ÉÏÊö¹ý³Ì£¬¸ ......
package Utils.Sort;
/**
*¿ìËÙÅÅÐò£¬ÒªÇó´ýÅÅÐòµÄÊý×é±ØÐëʵÏÖComparable½Ó¿Ú
*/
public class QuickSort implements SortStrategy
{
private static final int CUTOFF = 3; //µ±ÔªËØÊý´óÓÚ´Ë ......
×÷ΪJava³ÌÐòÔ±À´Ëµ£¬×îÍ´¿àµÄÊÂÇéĪ¹ýÓÚ¿ÉÒÔÑ¡ÔñµÄ·¶Î§Ì«¹ã£¬¿ÉÒÔ¶ÁµÄÊéÌ«¶à£¬ÍùÍùÈÝÒ×ÎÞËùÊÊ´Ó¡£ÎÒÏë¾ÍÎÒ×Ô¼º¶Á¹ýµÄ¼¼ÊõÊé¼®ÖÐÌôÑ¡³öÀ´Ò»Ð©£¬°´ÕÕѧϰµÄÏȺó˳Ðò£¬ÍƼö¸ø´ó¼Ò£¬ÌرðÊÇÄÇЩÏë²»¶ÏÌá¸ß×Ô¼º¼¼ÊõˮƽµÄJava³ÌÐòÔ±ÃÇ¡£
Ò»¡¢Java±à³ÌÈëÃÅÀà
¶ÔÓÚûÓÐJava±à³Ì¾ÑéµÄ³ÌÐòÔ±ÒªÈëÃÅ£¬Ëæ±ã¶ÁʲôÈëÃÅÊé¼®¶¼Ò»Ñù£¬Õâ ......
һЩÆóÒµÔÚÕÐƸ³ÌÐòÔ±µÄʱºò£¬×Ü»áÌØÒâÌá³öÒ»¸öÒªÇ󣬼´ÒªÇó¾ßÓÐÁ¼ºÃµÄ±àÂë¹æ·¶¡£È·ÊµÏÖÔÚ³ÌÐò¿ª·¢ÈËÔ±ÒѾ²»ÔÚÊǵ¥Ç¹Æ¥ÂíµÄµ¥¸É£¬¶øÊǽ²¾¿ÍÅÌå×÷Õ½¡£´Ëʱ¾ÍÒªÇóÍŶÓÄڵijËÔ±¶¼¿ÉÄܹ»ã¡ÊØ´úÂëµÄ±àд¹æ·¶£¬Õâ¶ÔÓÚ³ËÔ±Ö®¼ä¹²Ïí´úÂë¡¢ÅÅ´íµÈ×÷Òµ¶¼¾ßÓзdz£ÏÖʵµÄÒâÒå¡£ÕâÔÚJavaÓïÑÔÖе±È»Ò²²»ÀýÍâ¡£±ÊÕß½èÕâ´Î»ú»á£¬ ......