원소가 1개씩만 있는 배열은 이상하게 int[]로 하면 sort에서 에러가 발생했다.
Integer[]로 선언해주니까 잘 된다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
Integer[] task = {8,13,12,10};
// task[i]를 오름차순 정렬
// 방법 1
// Arrays.sort(task);
// 방법 2
// Arrays.sort(task, (o1, o2) -> o1 - o2);
// 방법 3
// Arrays.sort(task, new Comparator<Integer>(){
// @Override
// public int compare(Integer o1, Integer o2){
// return o1 - o2;
// }
// });
// task[i]를 내림차순 정렬
// 방법 1
// Arrays.sort(task, (o1, o2) -> o2 - o1);
// 방법 2
// Arrays.sort(task, new Comparator<Integer>(){
// @Override
// public int compare(Integer o1, Integer o2){
// return o2 - o1;
// }
// });
System.out.println(Arrays.toString(task));
}
}
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
int[][] task = {{2,8},{1,13},{2,13},{3,10}};
// task[i][j]일 때 task[i][1]는 내림차순
// task[i][1]값이 같다면 task[i][0]를 오름차순으로 정렬
// 방법 1
Arrays.sort(task, (a, b) -> {
if(a[1] == b[1]){
return a[0] - b[0]; //오름차순
// return b[0] - a[0]; //내림차순
}
return b[1] - a[1]; //내림차순
// return a[1] - b[1]; //오름차순
});
// 방법 2
// Arrays.sort(task, new Comparator<int[]>(){
// @Override
// public int compare(int[] o1, int[] o2){
// if(o1[1] == o2[1]){
// return o1[0] - o2[0]; // 오름차순
// // return o2[0] - o1[0]; // 내림차순
// }
// return o2[1] - o1[1]; // 내림차순
// // return o1[1] - o2[1]; // 오름차순
// }
// });
System.out.println(Arrays.deepToString(task));
}
}
[[1, 13], [2, 13], [3, 10], [2, 8]]