Java - 문제 미리보기
문제 2409
easy
다음 코드에서 빈칸에 들어갈 올바른 메서드명은?
```java
class Car implements Comparable<Car> {
public String brand;
public int year;
public int ______(Car other) {
return this.year - other.year;
}
}
```
```java
class Car implements Comparable<Car> {
public String brand;
public int year;
public int ______(Car other) {
return this.year - other.year;
}
}
```
정답: B
Comparable 인터페이스에서 구현해야 하는 메서드는 `compareTo()`입니다.
Comparable 인터페이스 구현:
```java
class Car implements Comparable<Car> {
public String brand;
public int year;
public Car(String brand, int year) {
this.brand = brand;
this.year = year;
}
@Override
public int compareTo(Car other) {
// this 객체와 other 객체 비교
return this.year - other.year; // 연도순 정렬
}
}
```
사용 방법:
```java
List<Car> cars = Arrays.asList(
new Car("BMW", 2020),
new Car("Audi", 2018),
new Car("Toyota", 2022)
);
// Comparable 구현 시 비교자 없이 정렬 가능
Collections.sort(cars); // compareTo() 메서드 자동 사용
// 결과: Audi(2018) → BMW(2020) → Toyota(2022)
```
compareTo() 메서드의 특징:
⦁ 자기 비교: 현재 객체(`this`)와 매개변수 객체 비교
⦁ 자연스러운 순서: 해당 클래스의 기본 정렬 규칙 정의
⦁ 반환값: compare()와 동일한 규칙 (음수/0/양수)
💡 학습 팁
이 문제를 포함한 Java 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.