# Java Arrays.sort() 반환값은 void
---
## 1. 개요
- `Arrays.sort()`는 Java에서 배열을 정렬할 때 사용하는 정적 메서드이다.
- 이 메서드는 배열을 ****제자리(in-place)**** 에서 정렬하며, ****반환값이 없다 = (**`void`**를 반환한다.)****
- 따라서 반환값이 없는 메서드를 `arr = Arrays.sort(arr);`처럼 작성하면 `void`를 `int[]`에 할당하려는 시도가 되어 ****타입 불일치 오류****(`incompatible types`)가 발생한다.
- 오류 메세지 : ****incompatible types: void cannot be converted to int\[\]****
---
## 2. 기본 문법
```java
Arrays.sort(배열);
```
매개변수
| 설명
|
---|
배열
| 정렬 대상 (예: `int[]`, `char[]`, `String[]`)
|
---
## 3. 반환값이 `void`인 이유
항목
| 설명
|
---|
제자리 정렬
| `Arrays.sort()`는 ****원본 배열 자체****를 수정함
|
새로운 배열 반환 안 함
| 정렬된 배열을 새로 만들어 반환하지 않음
|
메모리 절약
| 불필요한 배열 복사 없이 빠른 정렬 수행 가능
|
할당 X
| `int[] sorted = Arrays.sort(arr);` ❌ 오류 발생
|
---
## 4. 정렬된 배열을 새로 만들고 싶다면?
아래와 같이 Arrays.copyOf(원본배열, 원본배열의 길이)를 통해 배열을 복사한 후, 정렬을 수행한다.
```java
int[] original = {3, 1, 2};
int[] copy = Arrays.copyOf(original, original.length);
Arrays.sort(copy);
```
---
## 5. 관련 메서드
메서드
| 설명
|
---|
`Arrays.sort(arr)`
| 기본 오름차순 정렬
|
`Arrays.sort(arr, Comparator)`
| 사용자 정의 기준 정렬 (객체 배열)
|
`Collections.sort(list)`
| 리스트 정렬 (반환값 없음)
|
---