기록하는 공부
[Java] 배열의 오름차순/내림차순 정렬 (Arrays.sort()/Collections.reverseOrder()/Wrapper/Integer/Boxing) 본문
Language/Java
[Java] 배열의 오름차순/내림차순 정렬 (Arrays.sort()/Collections.reverseOrder()/Wrapper/Integer/Boxing)
SS_StudySteadily 2023. 7. 12. 17:24728x90
반응형
배열을 정렬할 때, 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
반응형
'Language > Java' 카테고리의 다른 글
[Java] 문자열에 문자 추가하기 (StringBuilder / +연산자) (0) | 2023.07.12 |
---|---|
[Java] 배열에서 최댓값 구하는 방법 (for문/Arrays.sort/stream) (0) | 2023.07.11 |
[Programmers] 120903 배열의 유사도 (equals 함수) (0) | 2023.07.11 |