|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
public interface Comparator<T>
¿ÀºêÁ§Æ®ÀÇ Ä÷º¼ÇÀ¸·Î ¡¸Àüü ¼ø¼ ºÙÀÌ°í¡¹¸¦ ½Ç½ÃÇÏ´Â ºñ±³ ÇÔ¼öÀÔ´Ï´Ù. ÄÞÆÛ·¹ÀÌÅÍ (Comparator)¸¦ ¼ÒÆ® ¸Þ¼µå (Collections.sort µî)¿¡ °Ç³×ÁÖ¸é, ¼ÒÆ®¼ø¼¸¦ Á¤È®ÇÏ°Ô Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÄÞÆÛ·¹ÀÌÅ͸¦ »ç¿ëÇϸé,TreeSet ¶Ç´Â TreeMap ¶ó°í ÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶ÀÇ ¼ø¼¸¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÞÆÛ·¹ÀÌÅÍ c °¡ ¿ä¼Ò¼¼Æ® S ·Î ½Ç½ÃÇÏ´Â ¼ø¼ºÎ´Â S ¸ðµç e1 ¹× e2 ¿¡ ´ëÇØ (compare((Object) e1, (Object) e2)==0) °¡ e1.equals((Object) e2) ¿Í °°Àº boolean Ä¡¸¦ °¡Áö´Â °æ¿ì¿¡¸¸ equals ¿ÍÀÇ Àϰü¼ºÀÌ ÀÖ°Ô µË´Ï´Ù.
¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® ¸Ê)¸¦ ¼ø¼ ºÙÀ̰í Çϱâ À§Çؼ, equals ¿Í Àϰü¼ºÀÌ ¾ø´Â ¼ø¼ºÎ¸¦ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ´Â ÄÞÆÛ·¹ÀÌÅ͸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù. ¸í½ÃÀûÀÎ ÄÞÆÛ·¹ÀÌÅÍ c¸¦ °¡Áö´Â ¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® ¸Ê)°¡ ¼¼Æ® S ·ÎºÎÅÍÀÇ ¿ä¼Ò (¶Ç´Â Ű)¿Í ÇÔ²² »ç¿ëµÇ¸é °¡Á¤ÇÕ´Ï´Ù. c ¿¡ ÇØ S ¿¡ ºÎ°úµÇ´Â ¼ø¼ºÎ°¡ equals ¿Í Àϰü¼ºÀÌ ¾ø´Â °æ¿ì, ¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® ¸Ê)ÀÇ µ¿ÀÛÀº ÀÌ»óÇÏ°Ô µË´Ï´Ù. ƯÈ÷, ¼ÒÆ® ¼¼Æ® (¶Ç´Â ¼ÒÆ® ¸Ê)´Â equals ·Î Á¤Àǵǰí ÀÖ´Â ¼¼Æ® (¶Ç´Â ¸Ê)ÀÇ ÀÏ¹Ý ±Ô¾à¿¡ À§¹ÝÇÕ´Ï´Ù.
¿¹¸¦ µé¾î,(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)}
ÀÌ ÀÎÅÍÆäÀ̽º´Â Java Collections Framework ¸â¹öÀÔ´Ï´Ù.
Comparable
,
Arrays.sort(Object[], Comparator)
,
TreeMap
,
TreeSet
,
SortedMap
,
SortedSet
,
Serializable
¸Þ¼µå °³¿ä | |
---|---|
int |
compare (T o1,
T o2)
¼ø¼ºÎ¸¦ À§Çؼ 2 °³ÀÇ Àμö¸¦ ºñ±³ÇÕ´Ï´Ù. |
boolean |
equals (Object obj)
´Ù¸¥ ¿ÀºêÁ§Æ®°¡ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿Í ¡¸µ¿ÀÏÇÏ´Ù¡¹ÈµµÀÎÁö¸¦ ³ªÅ¸³À´Ï´Ù. |
¸Þ¼µåÀÇ »ó¼¼ |
---|
int compare(T o1, T o2)
±¸ÇöÀº, ¸ðµç x ¹× y ·Î sgn(compare(x, y)) == -sgn(compare(y, x))¸¦ º¸ÁõÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰ÍÀº,compare(y, x) °¡ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì¿¡¸¸ compare(x, y) °¡ ¿¹¿Ü¸¦ Throw ÇÏ´Â °ÍÀ» ¹ÌÇÕ´Ï´Ù.
¶Ç, ±¸ÇöÀÚ´Â ÀÌ °ü°è¿¡ ÃßÀ̼ºÀ» °®°ÔÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Áï,((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 ¹øÂ°ÀÇ ¿ÀºêÁ§Æ®
ClassCastException
- ÀμöÀÇ ÇüŰ¡ ÀÌ ÄÞÆÛ·¹ÀÌÅÍ¿¡
ÇÑ ºñ±³¸¦ ¹æÇØÇÏ´Â °æ¿ìboolean equals(Object obj)
comp1.equals(comp2)
´Â
¸ðµç ¿ÀºêÁ§Æ® ÂüÁ¶ o1 ¹× o2 ·Î sgn(comp1.compare(o1, o2)) ==sgn(comp2.compare(o1, o2))¸¦
¹ÌÇÕ´Ï´Ù. º¸Åë ,Object.equals(Object)´Â º¯°æÇÏÁö ¾Ê´Â ÆíÀÌ ¾ÈÀüÇÕ´Ï´Ù. ´Ù¸¸, ÀÌ ¸Þ¼µå¸¦ º¯°æÇØ, 2 °³ÀÇ °³º°ÀÇ ÄÞÆÛ·¹ÀÌÅͰ¡ °°Àº ¼ø¼ºÎ¸¦ ½Ç½ÃÇÏ´Â °ÍÀ» ÇÁ·Î±×·¥ÀÌ ÆÇ´ÜÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ¸·Î ÆÛÆ÷¸Õ½º°¡ Çâ»óÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
Object
³»ÀÇ equals
obj
- ºñ±³ ´ë»óÀÇ ÂüÁ¶ ¿ÀºêÁ§Æ®
true
Object.equals(java.lang.Object)
,
Object.hashCode()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.