int[] intArr = new int[] {1,3,2,5,4};
double[] doubletArr = new double[] {3.3, 1.1, 5.5, 2.2, 4.4};
String[] stringArr = new String[] {"A","C","B","E","D"};
//정렬
Arrays.sort(intArr);
Arrays.sort(doubletArr);
Arrays.sort(stringArr);
결과
intArr = 1 2 3 4 5
doubleArr = 1.1 2.2 3.3 4.4 5.5
stringArr = A B C D E
정렬 범위 지정
인자로 전달한 배열 뒤에 fromIndex, toIndex를 추가하여 정렬할 범위 지정 가능
Arrays.sort(arr,fromIndex,toIndex)
int[] intArr = new int[] {1,3,5,2,4};
Arrays.sort(intArr,2,5); // 2~4번 인덱스 까지만 정렬
출력 결과
intArr = 1 3 2 4 5
Comparator 사용
Integer[] intArr = new Integer[] {1,2,1,1,1};
Arrays.sort(intArr,Comparator.naturalOrder()); // 오름차순
Arrays.sort(intArr,Comparator.reverseOrder()); // 내림차순
정렬 기준 정의
Integer[] intArr = new Integer[] {1,3,2,5,4};
Arrays.sort(intArr,new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) { // a는 앞의 수 b는 뒤의 수
System.out.println(a.compareTo(b));
return a.compareTo(b); // 오름차순
//return b.compareTo(a); // 내림차순
}
});
a.compareTo(b)는 a가 b보다 작다면 양수를 반환하고, a와 b가 같다면 0을 반환, a가 b보다 크다면 음수를 반환
람다식 활용
Integer[] intArr = new Integer[] {1,3,2,5,4};
// 오름차순 정렬
Arrays.sort(intArr, (a, b) ->
a - b
);
// 내림차순 정렬
Arrays.sort(intArr, (a, b) ->
b - a
);
분석
입력
출력
package BOJ;
import java.util.ArrayList;
import java.util.Scanner;
public class Baekjoon_2750 {
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < N; i++){
int A = scanner.nextInt();
list.add(A);
}
scanner.close();
list.sort(null);
for(int i = 0; i < N; i++){
System.out.println(list.get(i));
}
}
}
분석