[JAVA] sort 할 때 정렬 기준 만드는 법(feat. Comparator)
반응형
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로 조건에 맞게 정렬을 할 수 있었다!
반응형
'Algorithm' 카테고리의 다른 글
[JAVA] 프로그래머스 [3차] 방금그곡 (0) | 2023.09.16 |
---|---|
[JAVA] 프로그래머스 [1차] 뉴스 클러스터링 (0) | 2023.09.06 |
[JAVA] 백준 2470 두 용액 (0) | 2023.07.20 |
[JAVA] 얕은 복사(Shallow Copy) vs 깊은 복사(Deep Copy) 개념 및 코드 정리 (0) | 2023.06.24 |
[JAVA] 백준 13699 점화식 (0) | 2023.05.03 |