Programming Languages/Java

[JAVA] 자바에서 오름차 순/내림차 순 정렬하기 - Arrays.sort , 내림차 순 정렬 시 유의 사항

Hannana. 2023. 5. 7. 09:54
반응형

 

자바 배열을 정렬하기 위해서는

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을 이용해 정수 배열로 다시 원 위치해주자.

 

 

 

반응형