JavaTM 2 Platform
Standard Ed. 5.0

java.lang
ÀÎÅÍÆäÀ̽º Comparable<T>

¾Ë·ÁÁø ¼­ºê ÀÎÅÍÆäÀ̽º ¸ñ·Ï :
Delayed, Name, ScheduledFuture <V>
¾Ë·ÁÁø ±¸Çö Ŭ·¡½º ¸ñ·Ï:
Authenticator.RequestorType, BigDecimal, BigInteger, Boolean, Byte, ByteBuffer, Calendar, Character, CharBuffer, Charset, CollationKey, CompositeName, CompoundName, Date, Date, Double, DoubleBuffer, ElementType, Enum, File, Float, FloatBuffer, Formatter.BigDecimalLayoutForm, FormSubmitEvent.MethodType, GregorianCalendar, IntBuffer, Integer, JTable.PrintMode, KeyRep.Type, LdapName, Long, LongBuffer, MappedByteBuffer, MemoryType, ObjectStreamField, Proxy.Type, Rdn, RetentionPolicy, RoundingMode, Short, ShortBuffer, SSLEngineResult.HandshakeStatus, SSLEngineResult.Status, String, Thread.State, Time, Timestamp, TimeUnit, URI, UUID

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 ¸â¹öÀÔ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.2
°ü·Ã Ç׸ñ:
Comparator, Collections.sort(java.util.List), Arrays.sort(Object[]), SortedSet, SortedMap, TreeSet, TreeMap

¸Þ¼­µå °³¿ä
 int compareTo (T  o)
          ÀÌ °´Ã¼¿Í ÁöÁ¤µÈ °´Ã¼ÀÇ ¼ø¼­¸¦ ºñ±³ÇÕ´Ï´Ù.
 

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

compareTo

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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.