Java에서 배열을 정렬할 때는 Arrays.sort(배열)함수를 사용하면 된다
오름차순 정렬
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {3, 5, 1, 4, 2};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 2, 3, 4, 5]
}
}
내림차순 정렬
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Integer[] numbers = {3, 5, 1, 4, 2}; // Integer[]로 해야 Collections.reverseOrder()를 사용할 수 있음
Arrays.sort(numbers, Collections.reverseOrder());
System.out.println(Arrays.toString(numbers)); // [5, 4, 3, 2, 1]
}
}
내림차순 정렬하는 또 다른 방법
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(5);
list.add(100);
list.add(50);
list.add(20);
list.add(70);
list.add(34);
list.add(57);
Collections.sort(list, (l1,l2) -> l1- l2);
System.out.println(list);
Collections.sort(list, (l1,l2) -> l2- l1);
System.out.println(list);
Arrays.sort(array2, (a, b) -> {
int cmp = Integer.compare(b[0], a[0]); // 첫 번째 열 내림차순
if (cmp != 0) return cmp;
return Integer.compare(a[1], b[1]); // 두 번째 열 오름차순
});
int[][] array2 = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}};
Arrays.sort(array2, (o1, o2) -> o2[0]- o1[0]); // 첫 번째 열을 기준으로 내림차순 정렬
for (int[] row : array2) {
System.out.println(Arrays.toString(row));
}
Arrays.sort(array2, (o1, o2) -> o1[0]- o2[0]); // 첫 번째 열을 기준으로 오름차순 정렬
for (int[] row : array2) {
System.out.println(Arrays.toString(row));
}