
1차원배열의 오름차순 정렬
int[] arr = {5, 4, 3, 2, 1};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
String[] arr2 = {"e", "d", "c", "b", "a"};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
결과
arr: [1, 2, 3, 4, 5]
arr2: [a, b, c, d, e]
1차원배열의 내림차순 정렬
int가 아닌 Integer 타입으로 선언해야한다.
Integer[] arr = {1, 2, 3, 4, 5};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
결과
arr: [5, 4, 3, 2, 1]
Integer[] arr = {1, 2, 3, 4, 5};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(Arrays.deepToString(arr));
결과
arr: [5, 4, 3, 2, 1]
2차원배열의 오름차순 정렬 방법 1 (Java 8 이상)
int[][] arr = {{3,3}, {1,2}, {1,1}};
Arrays.sort(arr, (o1, o2) -> {
if (o1[0] == o2[0]) {
return o1[1] - o2[1]; // 0열의 data가 서로 같으면 1열을 기준으로 오름차순 정렬한다.
} else{
return o1[0] - o2[0]; // 그렇지 않으면 0열을 기준으로 오름차순 정렬한다.
}
});
System.out.println(Arrays.deepToString(arr));
결과
arr: [[1, 1], [1, 2], [3, 3]]
2차원배열의 오름차순 정렬 방법 2
int[][] arr = {{3,3}, {1,2}, {1,1}};
Arrays.sort(arr, (o1, o2) -> {
return o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0];
});
System.out.println(Arrays.deepToString(arr));
// 기본적으로 0열을 비교하여 오름차순 정렬하되, 0열의 크기가 같으면 1열을 비교해서 내림차순 정렬
결과
arr: [[1, 2], [1, 1], [3, 3]]
2차원배열의 내림차순 정렬
int[][] arr = {{3,3}, {1,2}, {1,1}};
Arrays.sort(arr, (o1, o2) -> {
if (o1[0] == o2[0]) {
return o2[1] - o1[1]; // 0열의 data가 서로 같으면 1열을 기준으로 내림차순 정렬한다.
} else{
return o2[0] - o1[0]; // 그렇지 않으면 0열을 기준으로 내림차순 정렬한다.
}
});
System.out.println(Arrays.deepToString(arr));
결과
arr: [[3, 3], [1, 2], [1, 1]]
'자바' 카테고리의 다른 글
[자바] 힙(Heap) - 최대힙 / 최소힙 개념과 구현. java (0) | 2022.06.22 |
---|---|
[자바] 업캐스팅과 다운캐스팅 (0) | 2022.06.21 |
[자바] 균형 이진 탐색 트리 - AVL트리의 개념과 삽입 구현까지 (0) | 2022.06.18 |
[자바] 이진 탐색 트리 (Binary Search Tree) (0) | 2022.06.18 |
[자바] Tree의 개념, 종류, 재귀함수를 이용한 구현까지 (0) | 2022.06.17 |