[JAVA] sort 할 때 정렬 기준 만드는 법(feat. Comparator)
2023. 9. 2.
반응형

Java에서는 정렬기능인 sort함수를 제공한다.

 

배열이라면 Arrays.sort(), 컬렉션이라면 Collections.sort()를 사용해 안의 내용물을 정렬한다.

 

기본적으로는 그 값을 오름차순, 내림차순으로 정렬해서 사용하곤 하지만 만약 2차원 배열이라면? 그 안의 값을 단순 오름차순, 내림차순 이외에도 다른 방법으로 정렬하고 싶다면?

 

바로 Comparator를 사용하면 된다.

 

 

 

반응형

 

 

 

나의 문제 상황은 이런 것이었다.

 

2차원 리스트가 있었고 그 리스트를 정렬하고 싶었다.

근데 그 리스트를 각각 정렬하고 싶었던 게 아니라 각각 1차원 리스트의 크기순으로 다시 2차원 리스트를 정렬하고 싶었다.

그래서 이렇게 사용했다.

 

 

Collections.sort(list, new Comparator<List<Integer>>() {
            @Override
            public int compare(List<Integer> l1, List<Integer> l2) {
                return Integer.compare(l1.size(), l2.size());
            }
        });

 

당연히 활용방법은 무궁무진하다. (구현하기 나름)

 

나 같은 경우 List로 2차원 배열을 구현했고, Comparator로 조건에 맞게 정렬을 할 수 있었다!

 

 

반응형
myoskin