Programming Languages/Java
[JAVA] 자바에서 오름차 순/내림차 순 정렬하기 - Arrays.sort , 내림차 순 정렬 시 유의 사항
Hannana.
2023. 5. 7. 09:54
728x90
반응형
자바 배열을 정렬하기 위해서는
import java.util.Arrays;
을 가장 먼저 임포트해줘야 한다.
그리고 선언 된 배열을 오름차 순/내림차 순인지에 따라 다음와 같이 정렬한다.
- 배열 A를 오름차 순으로 정렬하기
=> Arrays.sort(A);
> 결과
input | output |
{3,1,7} | {1,3,7} |
- 배열 A를 내림차 순으로 정렬하기
=> Arrays.sort(A,Collections.reverseOrder()); 혹은 Arrays.sort(A,Comparator.reverseOrder());
> 예상 결과
input | output |
{3,1,7} | {7,3,1} |
그러나 예상 결과와 다르게 오류가 뜰 것이다.
error: no suitable method found for sort(int[],Comparator<Object> ....
int[] 배열 그대로 내림차 순 정렬을 할 수 없기 때문. Integer[] 배열로 형 변환을 해주자.
=> Integer[] AA = Arrays.stream(A).boxed().toArray(Integer[] :: new);
=> Arrays.sort(A,Collections.reverseOrder());
> 결과
input | output |
{3,1,7} | {7,3,1} |
에러없이 배열의 정렬이 잘 된 것을 확인할 수 있다.
만약, int[] 형으로 다시 변환하고 싶다면
=> int[] afterA = Arrays.stream(AA).mapToInt(i -> i).toArray();
Arrays.stream을 이용해 정수 배열로 다시 원 위치해주자.
반응형