정렬(Sort)

단순 리스트를 정렬할때 보통 Collections.sort()를 사용한다. // 오름차순

ex)
ArrayList list = new ArrayList();

list.add("d");
list.add("c");
list.add("b");
list.add("a");

Collections.sort(list); 

출력 : abcd

하지만 개발을 하다보니 VO를 List에 담는 경우도 있는데~
이때 List를 Collections.sort()에 담아서 실행하게 된다면 어떤 기준으로 정렬할지 모르기 때문에 에러가 발생한다.

List list = memberService.getUserList();
Collections.sort(list); //에러 발생

이때 단순 정렬이라면 Comparable을 사용해도 되고, 다른 여러가지 조건을 더 주려면 Comparator을 사용하면 된다.
객체 정렬 Comparator : 기본 정렬 기준 외에 다른 여러 기준으로 정렬하고자 할 때 사용하는 클래스
[형태]
Collections.sort(객체, new Comparator<타입>(){
});

선언하고 compare 메소드를 구현하면 된다.

ex)
     Collections.sort(list, (o1, o2) → {
        if (o1.getNumber() > o2.getNumber()) return 1;
        else if (o1.getNumber() < o2.getNumber()) return -1;
        else {return 0;}
     });


참고 :
https://cchoimin.tistory.com/entry/%EA%B0%9D%EC%B2%B4-%EC%A0%95%EB%A0%AC-Comparator?category=827467

안녕하세요. 끄적이기를 좋아하는 개발자 이예빈입니다. 매일 일기를 쓰는 것 처럼 블로그를 쓰고 싶어요.
Leave a Reply

Your email address will not be published. Required fields are marked *