모델 클래스에 Comparator나 Comparable을 implements 시킨다.

그 뒤 compare나 compareTo 메소드를 구현해주면,

Arrays.sort(array) 나 Collections.sort(collection) 로 정렬이 가능하다.

둘이 약간은 차이가 있으니 사용시 주의한다.

구현해야 하는 메소드는

comparator는 compare, comparable은 compareTo.

sorting시 파라메터도 다르다.

comparator는 implement해서 compare를 구현해놓은 클래스를 sort의 2번째 파라메터로 넣어준다.

sort(array, new ModelClass());

인스턴스를 만들거나 이전에 있던 인스턴스를 넣어주어도 아마 될 것이다.

comparator는 말그대로 비교해주는 놈. sort에게 누구를 써서 대소를 비교해야 하는지 알려준다고 생각하면 될 듯.

comparable은 그냥 정렬하고자 하는 배열이나 list만 주면 된다.

sort(array);

비교할수 있다는 의미이니 그 안에 자기를 정렬하는 방법이 같이 있는건 당연한 거겠지.


// 쓸 때마다 헷갈려서 매번 찾아봤는데 이젠 적어놓아야 겠다.
Posted by 병아리

사이드바 열기