JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.util
ÀÎÅÍÆäÀ̽º Comparator

±âÁ¸ÀÇ ±¸Çö Ŭ·¡½ºÀÇ À϶÷:
Collator

public interface Comparator

¿ÀºêÁ§Æ®ÀÇ ÄÝ·º¼ÇÀ¸·Î ¡¸Àüü ¼ø¼­ ºÙÀÌ°í¡¹¸¦ ½Ç½ÃÇÏ´Â ºñ±³ ÇÔ¼öÀÔ´Ï´Ù. ÄÞÆÛ·¹ÀÌÅÍ (Comparator)¸¦ ¼ÒÆ® ¸Þ¼Òµå (Collections.sort µî)¿¡ °Ç³×ÁÖ¸é(ÀÚ), ¼ÒÆ®¼ø¼­¸¦ Á¤È®ÇÏ°Ô Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÄÞÆÛ·¹ÀÌÅ͸¦ »ç¿ëÇϸé(ÀÚ),TreeSet ¶Ç´Â TreeMap ¶ó°í ÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶ÀÇ ¼ø¼­¸¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÄÞÆÛ·¹ÀÌÅÍ c °¡ ¿ä¼Ò¼¼Æ® S ·Î ½Ç½ÃÇÏ´Â ¼ø¼­ºÎ´Â S ÀÇ ¸ðµç e1 ¹× e2 ¿¡ ´ëÇØ (compare((Object) e1, (Object) e2)==0) °¡ e1.equals((Object) e2) ¿Í °°Àº boolean Ä¡¸¦ °¡Áö´Â °æ¿ì¿¡¸¸ equals ¿ÍÀÇ Àϰü¼ºÀÌ ÀÖ°Ô µË´Ï´Ù.

¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® MAP)¸¦ ¼ø¼­ ºÙÀ̰í Çϱâ À§Çؼ­, equals ¿Í Àϰü¼ºÀÌ ¾ø´Â ¼ø¼­ºÎ¸¦ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ´Â ÄÞÆÛ·¹ÀÌÅ͸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù. ¸í½ÃÀûÀÎ ÄÞÆÛ·¹ÀÌÅÍ c ¸¦ °¡Áö´Â ¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® MAP)°¡ ¼¼Æ® S ·ÎºÎÅÍÀÇ ¿ä¼Ò (¶Ç´Â Ű)¿Í ÇÔ²² »ç¿ëµÇ¸é(ÀÚ) °¡Á¤ÇÕ´Ï´Ù. c ¿¡ ÀÇÇØ S ¿¡ ºÎ°úµÇ´Â ¼ø¼­ºÎ°¡ equals ¿Í Àϰü¼ºÀÌ ¾ø´Â °æ¿ì, ¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® MAP)ÀÇ µ¿ÀÛÀº ÀÌ»óÇÏ°Ô µË´Ï´Ù. ƯÈ÷, ¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® MAP)´Â equals ·Î Á¤Àǵǰí ÀÖ´Â ¼¼Æ® (¶Ç´Â MAP)ÀÇ ÀÏ¹Ý ±Ô¾à¿¡ À§¹ÝÇÕ´Ï´Ù.

¿¹¸¦ µé¾î,(a.equals((Object) b) && c.compare((Object) a, (Object) b) ! = 0) ÀÎ 2 °³ÀÇ Å° a ¿Í b ¸¦ ÄÞÆÛ·¹ÀÌÅÍ c ¸¦ °¡Áö´Â ¼ÒÆ® ¼¼Æ®¿¡ Ãß°¡ÇÏ´Â °æ¿ì, 2 ¹øÂ°ÀÇ add ¿ÀÆÛ·¹À̼ÇÀº false ¸¦ µ¹·ÁÁÖ¾î, ¼ÒÆ® ¼¼Æ®ÀÇ »çÀÌÁî´Â Áõ°¡ÇÏÁö ¾Ê½À´Ï´Ù. À̰ÍÀº a ¿Í b °¡ ¼ÒÆ® ¼¼Æ®ÀÇ °üÁ¡¿¡¼­´Â µ¿µîÇϱ⠶§¹®¿¡ÀÔ´Ï´Ù.

ÁÖ: Åë»óÀº ÄÞÆÛ·¹ÀÌÅÍ·Î java.io.Serializable ¸¦ ±¸ÇöÇØ ÁÖ¼¼¿ä. ±× ÀÌÀ¯´Â ÄÞÆÛ·¹ÀÌÅ͸¦ Á÷·ÄÈ­ °¡´É µ¥ÀÌÅÍ ±¸Á¶ (TreeSet,TreeMap µî) Áß(¾È)¿¡¼­ ¼ø¼­ºÎ ¸Þ¼Òµå·Î¼­ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. µ¥ÀÌÅÍ ±¸Á¶ÀÇ Á÷·ÄÈ­¸¦ ¼º°ø½Ã۱â À§Çؼ­(¶§¹®¿¡)´Â ÄÞÆÛ·¹ÀÌÅÍ (Á¦°øµÇ´Â °æ¿ì)´Â Serializable ¸¦ ±¸ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

¼öÇÐÀûÀ¸·Î´Â ÁöÁ¤µÈ ÄÞÆÛ·¹ÀÌÅÍ c °¡ ÁöÁ¤µÈ ¿ÀºêÁ§Æ®¼¼Æ® S ¿¡ ºÎ°úÇÏ´Â ¡¸Àüü ¼ø¼­¡¹¸¦ Á¤ÀÇÇÏ´Â °ü°è´Â ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.

       {(x, y) such that c.compare((Object) x, (Object) y) <= 0}.
ÀÌ Àüü ¼ø¼­ÀÇ ¡¸»ó¡¹Àº ´ÙÀ½°ú °°½À´Ï´Ù.
       {(x, y) such that c.compare((Object) x, (Object) y) == 0}.
compare ÀÇ ±Ô¾àÀ¸·ÎºÎÅÍ, »óÀÌ S ¿¡¼­ÀÇ ¡¸µî°¡ °ü°è¡¹À̸ç, ÀÚ¿¬ ¼ø¼­ºÎ°¡ S ¿¡¼­ÀÇ ¡¸Àüü ¼ø¼­¡¹ÀÎ °ÍÀº ºÐ¸íÇÕ´Ï´Ù. c °¡ S ·Î ½Ç½ÃÇÏ´Â ¼ø¼­ºÎ°¡ ¡¸equals ¿ÍÀÇ Àϰü¼º¡¹ÀÌ ÀÖ´Ù°í ÇÏ´Â °æ¿ì, ±×°ÍÀº ÀÚ¿¬ ¼ø¼­ºÎÀÇ »óÀÌ ¿ÀºêÁ§Æ®ÀÇ equals(Object) ¸Þ¼Òµå·Î Á¤ÀÇµÈ µî°¡ °ü°èÀÎ °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
       {(x, y) such that x.equals((Object) y)}.

µµÀÔµÈ ¹öÁ¯:
1.2
°ü·Ã Ç׸ñ:
Comparable , Arrays.sort(Object[], Comparator) , TreeMap , TreeSet , SortedMap , SortedSet , Serializable

¸Þ¼ÒµåÀÇ °³¿ä
 int compare (Object  o1, Object  o2)
          ¼ø¼­ºÎ¸¦ À§Çؼ­(¶§¹®¿¡) 2 °³ÀÇ Àμö¸¦ ºñ±³ÇÕ´Ï´Ù.
 boolean equals (Object  obj)
          ´Ù¸¥ ¿ÀºêÁ§Æ®°¡ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿Í ¡¸µ¿ÀÏÇÏ´Ù¡¹È­µµÀÎÁö¸¦ ³ªÅ¸³À´Ï´Ù.
 

¸Þ¼ÒµåÀÇ »ó¼¼

compare

public int compare(Object  o1,
                   Object  o2)
¼ø¼­ºÎ¸¦ À§Çؼ­(¶§¹®¿¡) 2 °³ÀÇ Àμö¸¦ ºñ±³ÇÕ´Ï´Ù. ÃÖÃÊÀÇ Àμö°¡ 2 ¹øÂ°ÀÇ Àμöº¸´Ù ÀÛÀº °æ¿ì´Â ºÎÀÇ Á¤¼ö, ¾çÂÊ ¸ðµÎ°¡ µ¿ÀÏÇÑ °æ¿ì´Â 0, ÃÖÃÊÀÇ Àμö°¡ 2 ¹øÂ°ÀÇ Àμöº¸´Ù Å« °æ¿ì´Â Á¤ÀÇ Á¤¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù.

±¸ÇöÀº ¸ðµç x ¹× y ·Î sgn(compare(x, y)) == -sgn(compare(y, x)) ¸¦ ÇÁ·ÎÅØ¼ÇÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰ÍÀº compare(y, x) °¡ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÏ´Â °æ¿ì¿¡¸¸ compare(x, y) °¡ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

¶Ç, ±¸ÇöÀÚ´Â ÀÌ °ü°è¿¡ ÃßÀ̼ºÀ» °®°ÔÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Áï,((compare(x, y) >0) && (compare(y, z) >0)) ´Â compare(x, z) >0 ¸¦ ÀǹÌÇÕ´Ï´Ù.

¸¶Áö¸·À¸·Î, ±¸ÇöÀÚ´Â compare(x, y)==0 °¡ ¸ðµç z ·Î sgn(compare(x, z)) ==sgn(compare(y, z)) ¸¦ ÀǹÌÇϵµ·Ï(µíÀÌ) ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

(compare(x, y)==0) == (x.equals(y)) ´Â ¾ö¹ÐÇϰԴ¿䱸µÇÁö ¾Ê½À´Ï´Ù. Åë»óÀº ÀÌ Á¶°Ç¿¡ À§¹ÝÇÏ´Â ÄÞÆÛ·¹ÀÌÅÍ¿¡¼­´Â ÀÌ »ç½ÇÀÌ ¸íÈ®ÇÏ°Ô ³ªÅ¸³¯ Çʿ䰡 ÀÖ½À´Ï´Ù. ¡¸ÁÖ: ÀÌ ÄÞÆÛ·¹ÀÌÅÍ´Â equals ¿Í Àϰü¼ºÀÌ ¾ø´Â ¼ø¼­ºÎ¸¦ ºÎ°úÇÕ´Ï´Ù.¡¹(¿Í)°ú °°ÀÌ °¡¸®ÄÑ ÁÖ¼¼¿ä.

ÆÄ¶ó¹ÌÅÍ:
o1 - ºñ±³ ´ë»óÀÇ ÃÖÃÊÀÇ ¿ÀºêÁ§Æ®
o2 - ºñ±³ ´ë»óÀÇ 2 ¹øÂ°ÀÇ ¿ÀºêÁ§Æ®
¹Ýȯ°ª:
ÃÖÃÊÀÇ Àμö°¡ 2 ¹øÂ°ÀÇ Àμöº¸´Ù ÀÛÀº °æ¿ì´Â ºÎÀÇ Á¤¼ö, ¾çÂÊ ¸ðµÎ°¡ µ¿ÀÏÇÑ °æ¿ì´Â 0, ÃÖÃÊÀÇ Àμö°¡ 2 ¹øÂ°ÀÇ Àμöº¸´Ù Å« °æ¿ì´Â Á¤ÀÇ Á¤¼ö
¿¹¿Ü:
ClassCastException - ÀμöÀÇ ÇüŰ¡ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿¡ ÀÇÇÑ ºñ±³¸¦ ¹æÇØÇÏ´Â °æ¿ì

equals

public boolean equals(Object  obj)
´Ù¸¥ ¿ÀºêÁ§Æ®°¡ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿Í ¡¸µ¿ÀÏÇÏ´Ù¡¹È­µµÀÎÁö¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â Object.equals(Object) ÀÇ ÀÏ¹Ý ±Ô¾à¿¡ µû¸¦ Çʿ䰡 ÀÖ½À´Ï´Ù. ¶Ç, ÀÌ ¸Þ¼Òµå´Â ÁöÁ¤µÈ Object µµ ÄÞÆÛ·¹ÀÌÅÍÀ̸ç, ±×°ÍÀÌ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿Í °°Àº ¼ø¼­ºÎ¸¦ ½Ç½ÃÇÏ´Â °æ¿ì¿¡¸¸ true ¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. µû¶ó¼­,comp1.equals(comp2) ´Â ¸ðµç ¿ÀºêÁ§Æ® ÂüÁ¶ o1 ¹× o2 ·Î sgn(comp1.compare(o1, o2)) ==sgn(comp2.compare(o1, o2)) ¸¦ ÀǹÌÇÕ´Ï´Ù.

Åë»ó,Object.equals(Object) ´Â º¯°æÇÏÁö ¾Ê´Â ÆíÀÌ ¾ÈÀüÇÕ´Ï´Ù. ´Ù¸¸, ÀÌ ¸Þ¼Òµå¸¦ º¯°æÇØ, 2 krÀÇ °³º°ÀÇ ÄÞÆÛ·¹ÀÌÅͰ¡ °°Àº ¼ø¼­ºÎ¸¦ ½Ç½ÃÇÏ´Â °ÍÀ» ÇÁ·Î±×·¥ÀÌ ÆÇ´ÜÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀ¸·Î, ÆÛÆ÷¸Õ½º°¡ Çâ»óÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º Object ³»ÀÇ equals
ÆÄ¶ó¹ÌÅÍ:
obj - ºñ±³ ´ë»óÀÇ ÂüÁ¶ ¿ÀºêÁ§Æ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¿ÀºêÁ§Æ®µµ ÄÞÆÛ·¹ÀÌÅÍÀ̸ç, ±×°ÍÀÌ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿Í °°Àº ¼ø¼­ºÎ¸¦ ½Ç½ÃÇÏ´Â °æ¿ì¿¡¸¸ true
°ü·Ã Ç׸ñ:
Object.equals(java.lang.Object) , Object.hashCode()

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.