■ 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 = {214193116};
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 = {214193116};
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 = {42153};
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



 

블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,