2022-10-06
1. 방법
[[1, 2, 3], [2, 1], [1, 2, 4, 3], [2]] 이와 같은 이중 배열이 있다고 가정해보자. 이를 내부의 배열의 길이의 순서대로 정렬하면, [[2], [2, 1], [1, 2, 3], [1, 2, 4, 3]] 이런 모양이 나올 것이다. 방법을 알아보자.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@Test
public void test17() {
//오름차순 정렬
Comparator<List<String>> c = new Comparator<List<String>>() {
public int compare(List<String> s1, List<String> s2) {
return Integer.compare(s1.size(), s2.size());
//내림차순일 경우 return Integer.compare(s2.size(), s1.size());
}
};
List<List<String>> list = new ArrayList<>();
List<String> innerList = new ArrayList<>();
/**
*
*
* list.add(innerList) . . . .
*
* [[1, 2, 3], [2, 1], [1, 2, 4, 3], [2]] 형태의 배열을 넣는 로직
*
*
*/
Collections.sort(list, c); // 배열 오름 차순 정렬
}
방법은 Comparator 구현체를 이용해 외부 list 안에 있는 각 innerlist 들의 길이를 비교해 정렬을 하는 방법을 사용하면 된다.