본문 바로가기

java(자바)

[java(자바)] int 배열 내림차순 정렬하기(reverseOrder) _디버깅의 눈물

int 배열 내림차순 정렬하기(reverseOrder)

 

 

-코딩 테스트 공부 중 int로 선언된 배열을 내림차순으로 정렬할 필요가 생겼다.

 

 

int[] 선언 시 나타난 오류

 

-처음에는 위처럼 Arrays의 내장함수 sort와 Collections의 내장함수 reverseOrder()를 활용해 정렬하려고 했지만, 타입이 맞지 않는다고 오류가 났다.

 

-검색을 통해 확인해보니, Arrays.sort안에 Collections.reverseOrder()를 인자로 받기 위해서는, int 배열이 아니라 Integer 배열이어야 한다는 것을 확인했다.

 

 

Arrays.sort의 내장함수 설명

 

 

-왜냐하면 sort(T[] a, Comparator<? super T> c) method에서 T는 Generic Class이기 때문에 어떤 객체라도 인자로서 올 수 있지만, int는 객체가 아닌 Primitive type이기 때문이다. 따라서 객체인 Integer를 사용하면 정상적으로 작동한다.

 

 

Integer []로 바꾼 후 정상 작동

 

 

https://tears-of-debugging.tistory.com/50

 

[java(자바)] int와 Integer의 차이 _디버깅의 눈물

int와 Integer의 차이 타입 method Null 선언 저장공간 리스트로서 사용 int Primitive 자료형 (원시적 자료형) 내장 method X 불가능 4 bytes X Integer Wrapper 클래스 내장 method O (ex. Integer.parseInt)..

tears-of-debugging.tistory.com