기록하는 공부

[Java] 배열의 오름차순/내림차순 정렬 (Arrays.sort()/Collections.reverseOrder()/Wrapper/Integer/Boxing) 본문

Language/Java

[Java] 배열의 오름차순/내림차순 정렬 (Arrays.sort()/Collections.reverseOrder()/Wrapper/Integer/Boxing)

SS_StudySteadily 2023. 7. 12. 17:24
728x90
반응형

 

 

배열을 정렬할 때, Arrays.sort() 메서드를 사용할 수 있다.

이때, 이 메소드를 사용하기 위해서는 import 구문을 추가해주어야 한다.

 

import java.util.Arrays;

또는

import java.util.*;

 

 

 

 


 

 

오름차순

 

■ int형

 

import java.util.Arrays;

int[] arr = {1, 5, 3, 2, 4};
Arrays.sort(arr);
System.out.println(arr);

=> 1, 2, 3, 4, 5

 

 

 

■ String형

 

import java.util.Arrays;

String [] str = {"i", "e", "a", "u", "o"};
Arrays.sort(str);
System.out.println(str);

=> "a", "e", "i", "o", "u"

 

 

 

 


 

 

내림차순

 

■ int형

 

int[] arr1 = [3, 76, 24];
Integer[] arr2 = Arrays.stream(arr1).boxed().toArray(Integer[]::new);
Arrays.sort(arr2, Collections.reverseOrder());
System.out.println(arr2);

=> 76, 24, 3

 

int형의 arr1 배열이 있다.

Arrays.sort() 메서드는 기본이 오름차순이기 때문에

내림차순을 하려면 Collections.reverseOrder()를 매개변수에 추가로 적어야 한다.

 

이때, 주의할 점은 int형의 타입을 Integer로 바꿔줘야 한다.

그 이유는 sort 메소드를 살펴보면 객체를 받아오게 되어 있기 때문이다.

 

그러므로 byte, char, double, short, long, int, float과 같은 기본형(PrimitiveType) 타입의 배열에는

적용이 불가능하기 때문에 박싱(기본형 타입 자료형을 Wrapper 클래스로 변환)을 통하여 Integer로 바꿔줘야 한다.

 

Wrapper 클래스는 한 객체를 의미하며 산술 연산이 불가능하지만 Null은 처리할 수 있다.

따라서, SQL과 연동하는 경우 처리가 원활하다.

 

 

 

 


 

 

■ String형

 

String은 기본형 타입이 아니기 때문에 박싱 과정 없이 사용이 가능하다.

 

import java.util.Arrays;

String [] str = {"i", "e", "a", "u", "o"};
Arrays.sort(str, Collections.reverseOrder());
System.out.println(str);

=> "u", "o",  "i", "e", "a"

 

 

728x90
반응형