|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
public interface Comparable<T>
ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °¢ Ŭ·¡½ºÀÇ ¿ÀºêÁ§Æ®¿¡ Àüü ¼ø¼ºÎ¸¦ °Á¦ÇÕ´Ï´Ù. ÀÌ ¼ø¼ºÎ´Â Ŭ·¡½ºÀÇ ¡¸ÀÚ¿¬ ¼ø¼ºÎ¡¹¶ó°í ºÒ·Á ÀÌ Å¬·¡½ºÀÇ compareTo ¸Þ¼µå´Â ¡¸ÀÚ¿¬ ºñ±³ ¸Þ¼µå¡¹¶ó°í ºÒ¸³´Ï´Ù.
ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ¸®½ºÆ® ¹× ¹è¿Àº,Collections.sort ¹× Arrays.sort ¿¡ ÇØ ÀÚµ¿ÀûÀ¸·Î ¼ÒÆ® ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿ÀºêÁ§Æ®´Â ÄÞÆÛ·¹ÀÌÅ͸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ, ¼ÒÆ® µÈ ¸ÊÀÇ Å° ¶Ç´Â ¼ÒÆ® µÈ ¼¼Æ®ÀÇ ¿ä¼Ò·Î¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ŭ·¡½º C ÀÚ¿¬ ¼ø¼ºÎ´Â Ŭ·¡½º C ¸ðµç e1 ¹× e2 ¿¡ ´ëÇØ,(e1.compareTo((Object) e2) == 0) °¡ e1.equals((Object) e2) ¿Í °°Àº boolean Ä¡¸¦ º¸°ü À¯ÁöÇÏ´Â °æ¿ì¿¡¸¸, ¡¸equals ¿ÍÀÇ Àϰü¼º¡¹À» º¸°ü À¯ÁöÇÕ´Ï´Ù. null´Â ¾î´À Ŭ·¡½ºÀÇ ÀνºÅϽºÀ̱⵵ ÇÏÁö ¾Ê½À´Ï´Ù. e.equals(null) °¡ false¸¦ µ¹·ÁÁÖ´Â °æ¿ì¿¡¼µµ,e.compareTo(null)´Â NullPointerException¸¦ µ¹·ÁÁÝ´Ï´Ù.
ÀÚ¿¬ ¼ø¼ºÎ¿¡¼´Â equals ¿Í Àϰü¼ºÀÌ ÀÖ´Â °ÍÀº, Çʼö°¡ ¾Æ´Õ´Ï´Ù¸¸ °Çϰí Ãßõ µË´Ï´Ù. À̰ÍÀº, ¸í½ÃÀûÀÎ ÄÞÆÛ·¹ÀÌÅ͸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â ¼ÒÆ® µÈ ¼¼Æ®³ª ¼ÒÆ® µÈ ¸ÊÀ», ÀÚ¿¬ ¼ø¼ºÎ°¡ equals ¿Í Àϰü¼ºÀÌ ¾ø´Â ¿ä¼Ò ¶Ç´Â Ű¿Í ÇÔ²² »ç¿ëÇϸé, ¼¼Æ®¿Í ¸ÊÀÇ µ¿ÀÛÀÌ º¸ÁõµÇÁö ¾Ê°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù. ƯÈ÷, ÀÌ·¯ÇÑ ¼ÒÆ® µÈ ¼¼Æ® ¶Ç´Â ¼ÒÆ® µÈ ¸ÊÀº, ¼¼Æ® ¶Ç´Â ¸ÊÀÇ ÀϹÝÀûÀÎ ±Ô¾à¿¡ À§¹ÝÇÕ´Ï´Ù. ÀÌ ±Ô¾àÀº,equals ¸Þ¼µåÀÇ ¿ë¾î¸¦ ÀÌ¿ëÇØ Á¤Àǵǰí ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î,(! a.equals((Object) b) && a.compareTo((Object) b) == 0) ¿¡ ÇØ´çÇÏ´Â 2 °³ÀÇ Å° a ¿Í b¸¦ , ¸í½ÃÀûÀÎ ÄÞÆÛ·¹ÀÌÅ͸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â ¼ÒÆ® µÈ ¼¼Æ®¿¡ °¡¼¼Çϸé,a ¿Í b´Â ¼ÒÆ® µÈ ¼¼Æ®ÀÇ °üÁ¡À¸·ÎºÎÅÍ´Â µî°¡À̹ǷΠ2 ¹øÂ°ÀÇ add ¿ÀÆÛ·¹À̼ÇÀº false¸¦ µ¹·ÁÁÖ°í, ¼ÒÆ® µÈ ¼¼Æ®ÀÇ »çÀÌÁî´Â Ä¿ÁöÁö ¾Ê½À´Ï´Ù.
comparable¸¦ ±¸ÇöÇÏ´Â ´ëºÎºÐÀÇ Java ÄÚ¾î Ŭ·¡½º´Â equals ¿Í Àϰü¼ºÀÌ ÀÖ´Â ÀÚ¿¬ ¼ø¼ºÎ¸¦ °¡Áý´Ï´Ù. 1 °³ÀÇ ¿¹¿Ü´Â java.math.BigDecimal ÀÔ´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ÀÚ¿¬ ¼ø¼ºÎ¿¡¼´Â ´Ù¸¥ Á¤¹ÐµµÀÇ °°Àº °ª (4.0 À¸·Î 4.00 µî)À» °¡Áö´Â BigDecimal ¿ÀºêÁ§Æ®´Â µî°¡¶ó°í º¸¿©Áý´Ï´Ù.
¼öÇÐÀûÀ¸·Î´Â ÀÓÀÇÀÇ Å¬·¡½º C ¿¡ ´ëÇØ¼ ÀÚ¿¬ ¼ø¼ºÎ¸¦ Á¤ÀÇÇÏ´Â ¡¸¼ø¼ °ü°è¡¹´Â ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
ÀÌ Àüü ¼ø¼ÀÇ ¡¸»ó¡¹Àº ´ÙÀ½°ú °°½À´Ï´Ù.{(x, y) such that x.compareTo((Object) y) <= 0}.
{(x, y) such that x.compareTo((Object) y) == 0}.compareTo ±Ô¾àÀ¸·ÎºÎÅÍ ÆÇ´ÜÇØ, »óÀÌ C ·Î ¡¸µ¿Ä¡ °ü°è¡¹¿¡ ÀÖ¾î, ÀÚ¿¬ ¼ø¼ºÎ°¡ C ¡¸Àüü ¼ø¼¡¹ÀÌ´Ù°í ÇÏ´Â °ÍÀº ºÐ¸íÇÕ´Ï´Ù. Ŭ·¡½ºÀÇ ÀÚ¿¬ ¼ø¼ºÎ°¡ equals ¿Í Àϰü¼ºÀÌ ÀÖ´Ù°í ÇÏ´Â °ÍÀº, ÀÚ¿¬ ¼ø¼ºÎÀÇ »óÀÌ Å¬·¡½ºÀÇ ´ÙÀ½ÀÇ equals(Object) ¸Þ¼µå·Î Á¤ÀǵǴ µ¿Ä¡ °ü°è°¡ µÇ´Â °ÍÀ» ¹ÌÇÕ´Ï´Ù.
{(x, y) such that x.equals((Object) y)}.
ÀÌ ÀÎÅÍÆäÀ̽º´Â Java Collections Framework ¸â¹öÀÔ´Ï´Ù.
Comparator
,
Collections.sort(java.util.List)
,
Arrays.sort(Object[])
,
SortedSet
,
SortedMap
,
TreeSet
,
TreeMap
¸Þ¼µå °³¿ä | |
---|---|
int |
compareTo (T o)
ÀÌ ¿ÀºêÁ§Æ®¿Í ÁöÁ¤µÈ ¿ÀºêÁ§Æ®ÀÇ ¼ø¼¸¦ ºñ±³ÇÕ´Ï´Ù. |
¸Þ¼µåÀÇ »ó¼¼ |
---|
int compareTo(T o)
Àü¼úÀÇ ¼³¸í¿¡¼´Â sgn(expression) ¶ó°í Çϴ ǥ±â´Â ¼öÇÐ ÇÔ¼ö signum ÇÔ¼ö¸¦ ³ªÅ¸³»,expression °ª (ºÎÀÇ ¼ö, Á¦·Î Á¤ÀÇ ¼ö)¿¡ ÀÀÇØ,-1,0,1 ¾î¶² °ÍÀÎÁö¸¦ µ¹·ÁÁÝ´Ï´Ù. ±¸Çö¿¡¼´Â ¸ðµç x ¿Í y ¿¡ ´ëÇØ¼ sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) °¡ º¸ÁõµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰ÍÀº,y.compareTo(x) °¡ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì´Â x.compareTo(y) µµ ¿¹¿Ü¸¦ Throw ÇÏ´Â °ÍÀ» ¹ÌÇÕ´Ï´Ù.
±¸Çö¿¡¼´Â ¼ø¼ °ü°è°¡ ÃßÀÌÀûÀÎ °Íµµ º¸ÁõµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Áï,(x.compareTo(y) >0 && y.compareTo(z) >0)´Â x.compareTo(z) >0¸¦ ¹ÌÇÕ´Ï´Ù.
°Ô´Ù°¡ ¸ðµç z ¿¡ ´ëÇØ¼ x.compareTo(y)==0 °¡ sgn(x.compareTo(z)) == sgn(y.compareTo(z))¸¦ ¹ÌÇÏ´Â Àϵµ º¸ÁõµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
Çʼö¶ó°í ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù¸¸,(x.compareTo(y)==0) == (x.equals(y)) ÀÎ °ÍÀÌ °Çϰí Ãßõ µË´Ï´Ù. ÀϹÝÀûÀ¸·ÎComparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí Àִ Ŭ·¡½º¿¡¼, ÀÌ Á¶°Ç¿¡ À§¹ÝÇϴ Ŭ·¡½º´Â ¸ðµÎ, ¸íÈ®ÇÏ°Ô ÀÌ »ç½ÇÀ» ³ªÅ¸³¾ Çʿ䰡 ÀÖ½À´Ï´Ù. ¡¸ÁÖ: ÀÌ Å¬·¡½º´Â equals ¿Í Àϰü¼ºÀÌ ¾ø´Â ÀÚ¿¬ ¼ø¼ºÎ¸¦ °¡Áý´Ï´Ù¡¹ µî°ú ¸í½ÃÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
o
- ºñ±³ ´ë»óÀÇ Object
ClassCastException
- ÁöÁ¤µÈ ¿ÀºêÁ§Æ®ÀÇ ÇüŰ¡ ¿øÀÎÀ¸·Î ÀÌ Object ¿Í ºñ±³ÇÒ ¼ö ¾ø´Â °æ¿ì
|
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 µµ ÂüÁ¶ÇϽʽÿÀ.