
배열을 오름차순, 내림차순으로 정렬하는 방법을 알아보겠다.
간단하다. 두 경우 모두 비슷한 함수로 구현이 된다.
오름차순
public static void main(String[] args) {
int[] arr1 = {5, 4, 3, 2, 1};
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1)); // [1, 2, 3, 4, 5]
}
Arrays.sort로 간단히 나타낼 수 있다.
String[] 타입도 동일하다.
내림차순
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
String[] str = {"a","b","c","d","e"};
Integer[] intArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(intArr, Collections.reverseOrder());
Arrays.sort(str, Collections.reverseOrder());
System.out.println(Arrays.toString(intArr)); // [5, 4, 3, 2, 1]
System.out.println(Arrays.toString(str)); // [e, d, c, b, a]
}
String[] 타입의 경우 오름차순과 동일하게 Arrays.sort로 시작해서 Collections.reverseOrder()를 해주면 된다.
int[] 타입의 경우는 Integer 타입으로 Boxing 해주어야 한다.
Collections.reverseOrder() 자체가 기본타입은 못받고 래퍼클래스에 한해서 적용 가능하기 때문이다.
double 타입 등도 마찬가지로 Double타입으로 바꿔줘야한다.
바꾸는법은 for문을 이용해서 래퍼클래스로 생성한 배열에 하나하나 담아도 되지만,
위 코드처럼 Arrays.stream으로 좀 더 편하게 구현할 수 있으니 참고하시면 되겠다.
'자바' 카테고리의 다른 글
[자바] 부분 배열의 합 중 가장 큰 값 구하기 (분할 정복 알고리즘) (0) | 2022.07.20 |
---|---|
[자바] 투 포인터(Two Pointers) 알고리즘 (0) | 2022.07.12 |
[자바] 계수정렬(Counting sort) 개념과 구현 (0) | 2022.07.06 |
[자바] 기수정렬 (Radix sort) 개념과 구현 (0) | 2022.07.06 |
[자바] Math 클래스의 여러가지 메서드를 알아보자. (ceil & floor & round & pow & sqrt & abs) (0) | 2022.07.01 |