Comparable 인터페이스
Comparable은 compareTo 메서드 하나만 가지고 있는 인터페이스이다. 기본적으로 들어온 파라미터보다 작은 경우 음수, 같은 경우 0, 큰 경우 양수의 값을 리턴한다. 필요에 따라 인터페이스를 상속 후 재정의해서 사용할 수 있다.
public interface Comparable<T> {
public int compareTo(T o);
}
실제 예시
Story 클래스가 Comparable 인터페이스를 상속하고 compareTo를 멤버변수 view의 크기에 따라 정렬하도록 재정의 했다.
Class Story implements Comparable<Story> {
String content;
int view;
@Override
public int compareTo(Story o) {
return Integer.compare(this.view, o.view);
}
}
Story 리스트를 정렬하면 내부에 재정의한 compareTo를 통해 동작한다.
public class Application {
public static void main(String[] args) {
List<Story> storys = new List<Story>()
storys.add(new Story("new story", 3))
storys.add(new Story("old story", 0))
storys.add(new Story("yesterday story", 2))
List<Story> sortedStorys = storys.stream().sorted().toList()
}
}
'개발공부' 카테고리의 다른 글
[ JPA ] QueryDSL Select에 DTO 사용하는 경우 자동 조인 (0) | 2023.05.21 |
---|---|
[ Java ] Boxed Type 비교 (0) | 2023.03.19 |
[ Java Spring ] CRUD Repository vs JPA Repository (0) | 2022.12.04 |
DB 외부 접속 포트 포워딩 문제 (0) | 2022.11.21 |
[ 인생퍼즐 ] TypeORM Transaction 사용 (0) | 2022.09.04 |