■ Java 배열 정렬 (내림차순 vs 올림차순) |
Arrays.sort() 함수를 이용하여 올림차순 및 내림차순 정렬을 할 수 있습니다.
Syntax
public static void sort ( primitive_type_array a )
- 인자 값으로 primitive data type 인 byte[], char[], double[], long[], int[], float[] 등을 이용 합니다.
public static void sort ( primitive_type_array a, int fromIndex, int toIndex )
- 인자 값으로 primitive data type 인 byte[], char[], double[], long[], int[], float[] 등을 이용 하며, 정렬 시작 index 값 및 종료 index 값을 지정 합니다.
public static void sort ( Object[] a )
- 인자 값으로 Object (객체) 를 받습니다. Integer[], Double[], Character[] 등의 값을 받을 수 있습니다.
public static void sort ( Object[] a, int fromIndex, int toIndex )
- 인자 값으로 Object (객체) 를 받습니다. Integer[], Double[], Character[] 등의 값을 받을 수 있으며, 정렬 시작 index 값 및 종료 index 값을 지정 할 수 있습니다.
public static <T> void sort ( T[] a, Comparator<? super T> c )
- 인자 값으로 객체를 받으며, 지정된 Comparator 가 가리키는 순서에 따라 지정된 객체의 배열을 정렬합니다.
public static <T> void sort ( T[] a, int fromIndex, int toIndex, Comparator<? super T> c )
- 인자 값으로 객체를 받으며, 지정된 Comparator 가 가리키는 순서에 따라 지정된 객체의 배열을 정렬하며, 정렬 시작 index 값 및 종료 index 값을 지정 합니다.
Example
1
2
3
4
5
|
int[] arr = {21, 4, 19, 31, 16};
Arrays.sort(arr);
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
|
cs |
primitive data type 배열을 Arrays.sort() 함수에 입력하면 배열의 값이 변경 됩니다.
올림 차순으로 소트를 했으므로 아래와 같이 배열이 변경 됩니다.
arr =
위 코드를 실행 시키면 아래와 같은 결과 값이 나옵니다.
4
16
19
21
31
1
2
3
4
5
|
int[] arr1 = {21, 4, 19, 31, 16};
Arrays.sort(arr1, 1, arr1.length);
for(int i = 0; i < arr1.length; i++){
System.out.println(arr1[i]);
}
|
cs |
첫번째 예제와 동일한 값을 가진 배열을 준비했습니다.
sort() 함수의 인자 값이 세개로 첫번째는 배열을 두번째와 세번째는 변경할 index 범위를 지정합니다.
위 예제에서는 변경할 index 값을 1 ~ 배열의 길이 만큼 지정 했습니다. (1 ~ 5)
즉, 첫번째 21 값을 건드리지 않고 index 값이 1인 두번째 값 부터 마지막 값 까지만 정렬을 시킵니다.
변경 시 아래와 같은 순서로 배열이 정렬 됩니다.
arr =
위 코드를 실행 하면 아래와 같은 결과를 얻을 수 있습니다.
21
4
16
19
31
▶ 내림차순
1
2
3
4
5
|
Integer[] arr2 = {4, 2, 1, 5, 3};
Arrays.sort(arr2, Collections.reverseOrder());
for(int i = 0; i < arr2.length; i++){
System.out.println(arr2[i]);
}
|
cs |
앞선 두개의 예제와 다르게 primitive data type 이 아니라 객체의 배열을 이용했습니다.
Comparator 로는 Collections class 의 reverseOrder() 함수를 이용 했습니다.
지금까지와 반대 오더 즉, 반대로 소트 하겠다는 의미로 내림차순 적용을 합니다.
arr2 =
위와 같이 배열 정렬이 됩니다.
코드를 실행 하면 아래와 같습니다.
5
4
3
2
1
배열의 올림차순 및 내림차순 정렬에 대해 알아 봤습니다.
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D
'Java' 카테고리의 다른 글
[ 자바 코딩 ] 숫자 콤마 찍기 (금액 표기) (2243) | 2021.06.10 |
---|---|
[ 자바 코딩 ] NumberFormatException 원인과 해결방법 (1938) | 2021.06.10 |
[ 자바 코딩 ] Java split() 함수로 문자열 자르기 (2282) | 2021.06.10 |
[ 자바 코딩 ] java substring 으로 문자열 자르기 (3343) | 2021.06.10 |
[ 자바 코딩 ] Java Regular Expression 정규표현식 - 문자열 자르기 (split 함수) (1227) | 2018.07.03 |