본문 바로가기

비트교육센터[전문가반]

compareTo(), equal() 메서드

기본데이터 타입과 String은 Sorting 할때 compareTo메서드를 오버라이딩 안해도 되지만,
그 외에는 반드시 compareTo() 메서드를 오버라이딩 해야한다.

ex.

package collection2_gradeSort

 

public class Grade implements Comparable<Grade>{ //Comparable 인터페이스는compareTo()라는메소드를가진다.

 

   int number;

   String grade;

 

   public Grade(int number, String grade) {

      this.number = number;

      this.grade = grade;

   }

 

   public String toString() {

      return grade;

   }

 

   @Override

   public int compareTo(Grade g) { //객체를 서로 비교하기 위한 메서드이다.

   // TODO Auto-generated method stub

   return grade.compareTo(g.grade);

   }

 

}

 

또한 기본데이터 타입과 String은 equal 할때 equals()를 오버라이딩 안해도 되지만
그 외에는 반드시 equals() 메서드를 오버라이딩 해서 사용해야한다.

ex. 

public boolean equals(Object obj) {

   if(obj instanceof Person) {

      Person tmp = (Person)obj;

      return name.equals(tmp.name);

   }

   return false;

}

 

public int hashCode() {

   return name.hashCode();

}