자바빵
521
2021-05-20 23:17:17
2
144

Comparator<T>의 효율적인 활용법이 궁금합니다.


statusList라는 vo를 status 값 순선대로 정렬을

Collections.sort(statusList, new ListComparator());


public class ListComparator implements Comparator<OrderVo> {

    @Override
    public int compare(OrderVo o1, OrderVo o2) {
        int testint1 = o1.getStatus();
        int testint2 = o2.getStatus();

        if(testint1 > testint2){
            return 1;
        }else if(testint1 < testint2){
            return -1;
        }else{
            return 0;
        }

    }
}


이런식으로 테스트를 해보니 잘 되었습니다.



여기서 궁금한 부분이 생겼는데,

정렬을 할 vo가 많아진다면, 위에서 만든 ListComparator 클래스를 

ListComparator1.class, ListComparator2.class.... 이런식으로 여러개 만들어서

implements Comparator<T> 제너릭 타입을 구분해가며 구현하는 방법밖에 없을까요???


정렬을 하는 class를 하나 만들어두고,

데이터형이나 메소드로 구분을 해서 필요할때마다 하나의 클래스에서 꺼내쓰면 좋을꺼 같은데,

implements Comparator<T>에 제너릭으로 데이터형을 박아버리니, 다양한 자료형에 어떻게 대응 해야할지 감이 안옵니다....ㅠㅠ

0
  • 답변 2

  • shirohoo
    1k
    2021-05-20 23:52:22

    Comparator는 보통 Comparable를 구현하기 귀찮을때 익명클래스로 구현해서 사용하는거같더군요.

    Comparable의 compareTo 메소드를 구현하는게 일반적인 방법인거같습니다.

  • ansdbduf
    904
    2021-05-21 00:48:24

    java8 stream

  • 로그인을 하시면 답변을 등록할 수 있습니다.