-
String[][] book_time;
-
Arrays.sort(book_time, Comparator.comparing(o -> o[0]));
- Arrays.sort(book_time, (o1, o2) -> {
if (o1[0].equals(o2[0])) {
return o1[1].compareTo(o2[1]);
}
return o1[0].compareTo(o2[0]);
});
✅ 1. 단일 배열 (1차원)
🔹 기본형 배열 (int[], double[], char[] 등)
- 기본형은 Comparator 쓸 수 없음 (기본 오름차순만 가능)
- 내림차순 하고 싶다면 Integer[]로 박싱해야 함
int[] arr = {5, 2, 3};
Arrays.sort(arr); // 오름차순 정렬
Integer[] arr = {5, 2, 3};
Arrays.sort(arr, Collections.reverseOrder());// 내림차순
🔹 참조형 배열 (String[], Integer[], 커스텀 객체 등)
String[] words = {"banana", "apple", "cherry"};
Arrays.sort(words); // 알파벳 오름차순
//Comparator도 사용 가능:
Arrays.sort(words, Comparator.reverseOrder());
✅ 2. 이중 배열 (2차원 배열)
int[][] data = {
{5, 2},
{1, 3},
{4, 1}
};
✅ 방법 1: Arrays.sort() + 람다
Arrays.sort(data, (a, b) -> Integer.compare(a[0], b[0]));
{1, 3}
{4, 1}
{5, 2}
- a, b는 각각 int[] (행)
- a[0], b[0]는 행의 첫 번째 요소 (정렬 기준)
- 오름차순
✅ 방법 2: 두 번째 요소 기준 정렬 (예: 내림차순)
Arrays.sort(data, (a, b) -> Integer.compare(b[1], a[1]));
{1, 3}
{5, 2}
{4, 1}
- 두 번째 요소(a[1]) 기준
- 내림차순이므로 b - a 순서로 비교
✅ 복합 조건 정렬
Arrays.sort(data, (a, b) -> {
if (a[0] != b[0]) return Integer.compare(a[0], b[0]);
return Integer.compare(b[1], a[1]);
});
- 첫 번째 요소 기준 오름차순
- 같으면 두 번째 요소 기준 내림차순
✅ 3. List는 Arrays.sort() 못 씀!
List<Integer> list = Arrays.asList(5, 2, 3);
// Arrays.sort(list); ❌ 컴파일 오류!
Collections.sort(list); // ✅ 정렬 가능
list.sort(Comparator.naturalOrder());
'학습 기록 (Learning Logs) > Today I Learned' 카테고리의 다른 글
📘 6장. 제한적 직접 실행 원리 (0) | 2025.03.31 |
---|---|
개인 채팅, 단체 채팅 : 테이블 설계와 Kafka 토픽 설계 (0) | 2025.03.27 |
원자성 (0) | 2025.03.25 |
비관적락, 낙관적락 (0) | 2025.03.25 |
레디스 pub/sub (0) | 2025.03.24 |