Item 14. Comparable
Comparableμ ꡬνν μ§ κ³ λ €νλΌ
compareToλ₯Ό μ¬μ©νκΈ° μν΄μλ Comparableμ ꡬνν΄μΌ νλ€.(μμ cloneκ³Όλ λ€λ₯΄κ² Objectκ° μλ Comparableμ μ μΈλμ΄ μμ) Comparableμ ꡬννλ©΄ μ΄λ€ κ°μ²΄λ μ§ μμ°μ μΈ μμλ₯Ό μ ν μ μκ² λλ€.(λ°λλ‘ λ§νλ©΄, μ μνμ§ μμ κ²½μ° μμλ₯Ό νμλ‘νλ TreeMap, TreeSet λ±μμ μ¬μ©ν μ μλ€.)
compareTo μΌλ° κ·μ½
ν΄λΉ κ°μ²΄μ μ£Όμ΄μ§ κ°μ²΄μ μμλ₯Ό λΉκ΅νμ¬ μ£Όμ΄μ§ κ°μ²΄λ³΄λ€ μμΌλ©΄ μμ μ μ, κ°μΌλ©΄ 0, ν¬λ©΄ μμ μ μλ₯Ό λ°ννκ³ , λΉκ΅ν μ μλ νμ κ°μ²΄κ° μ£Όμ΄μ§λ©΄ ClassCastExceptionμ λμ§λλ‘ μ μνλ€. Comparableμ ꡬνν ν΄λμ€ x, y, zμ λν΄ λ€μμ κ·μ½μ λ°λΌμΌ νλ€.
** sgn νκΈ°: μνμμ λ§νλ λΆνΈ ν¨μ(signum function)λ₯Ό μλ―Ένλ©°, -1, 0, 1 μ€ νλλ₯Ό λ°ννλλ‘ μ μν¨
sgn(x.compareTo(y)) == -sgn(y.compareTo(x))
x.compareTo(y) > 0 && y.compareTo(z) > 0
μ΄λ©΄x.compareTo(z) > 0
x.compareTo(y) == 0
μ΄λ©΄sgn(x.compareTo(z)) == sgn(y.compareTo(z))
(x.compareTo(y) == 0) == (x.equals(y))
(νμλ μλμ§λ§ μΌλ°μ μΌλ‘ κΆμ₯)
compareTo ꡬν λ°©λ²
κΈ°λ³Έμ μΌλ‘ κ΄κ³ μ°μ°μ <, >λ₯Ό μ¬μ©νλ λ°©λ²λ³΄λ€λ λ°μ±λ κΈ°λ³Έ νμ ν΄λμ€μ compare μ μ λ©μλλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.(κ΄κ³ μ°μ°μλ₯Ό μ¬μ©νλ λ°©μμ μ€λ₯λ₯Ό λΌ μ μμ΄ μΆμ²νμ§ μμ) κ·Έλ¦¬κ³ , ν΅μ¬ νλκ° μ¬λ¬ κ°λΌλ©΄ κ°μ₯ ν΅μ¬μ μΈ νλλΆν° λΉκ΅ν λ€ μμκ° κ²°μ λλ©΄ μ¦μ λ°ννμ¬ λΆνμνκ² λΉκ΅νλ μΌμ μ€μ΄λ κ²μ΄ μ’λ€.
μ λ΄μ©μ Java 8 μ΄μμμλ λ©μλ μ°μ λ°©μμΌλ‘ λΉκ΅μλ₯Ό μμ±ν μ μλ€.(μ½κ°μ μ±λ₯ μ νκ° μμ μ μμ§λ§, κ°λ μ±μ΄ μ’μμ§λ―λ‘ κΆμ₯)
Last updated