ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] ArrayList 정렬하기
    JAVA 2022. 1. 16. 21:04

    java 8이후로 쉬운 list 정렬방법이 나왔다.

     

    이제 컬렉션없이 Comparator을 이용하여 리스트에서 바로 list함수를 바로 꺼내쓸 수 있다.

     

    // 오름차순으로 정렬
    list.sort(Comparator.naturalOrder());
    
    // 내림차순으로 정렬
    list.sort(Comparator.reverseOrder());

    이 밖에 객체나 특정 상황에서 비교군을 임의의로 정의해야할 때가 있다.

    이때는 Comparator 인터페이스를 구현하여 사용해볼 수 있다.

     

    인터페이스 구현

    public static class ChampRateComparator implements Comparator<ForChampIdAndRate> {
    
        @Override
        public int compare(ForChampIdAndRate o1, ForChampIdAndRate o2) {
            if (o1.getRate() > o2.getRate()) {
                return 1;
            } else if (o1.getRate() < o2.getRate()) {
                return -1;
            }
            return 0;
        }
    }
    
    public static class ChampNameComparator implements Comparator<ForChampIdAndRate> {
    
        @Override
        public int compare(ForChampIdAndRate o1, ForChampIdAndRate o2) {
            return o1.getName().compareTo(o2.getName())
        }
    }

    실코드

    List<ForChampIdAndRate> champIdAndRates = new ArrayList<>();
    
    ...
    
    champIdAndRates.sort(new ChampRateComparator()); // 승률 오름차순 정렬
    champIdAndRates.sort(new ChampRateComparator().reversed()); // 승률 내림차순 정렬
    
    champIdAndRates.sort(new ChampNameComparator()); // 이름 오름차순 정렬
    champIdAndRates.sort(new ChampNameComparator().reversed()); // 이름 내림차순 정렬

     

    이런식으로 직접 정의해서 사용해볼 수도 있다.

    'JAVA' 카테고리의 다른 글

    [JAVA] Enum 활용  (0) 2022.02.25
    [Java] HashMap Value 기준으로 정렬하기  (0) 2022.01.13
    [Java] Java 함수적 인터페이스 Consumer, Supplier  (0) 2021.12.17
    [Java]Optional 활용법  (0) 2021.12.17
    [Java] Optional  (0) 2021.12.17

    댓글

Designed by Tistory.