알고리즘 문제를 풀다 보면 배열이나 리스트를 정렬해야 하는 경우가 많다. 그럴 때마다 반복문을 이용해 정렬하는 것보다 java.util.Arrays 클래스의 sort() 메서드를 이용하면 간편하게 정렬할 수 있다.
java.util.Arrays 클래스
Arrays클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있다.
Arryas 클래스의 모든 메소드는 클래스 메소드(static method)이므로, 객체를 생성하지 않고도 바로 사용할 수 있다.
Arrays.sort()
이 메서드를 사용하면 배열(Array)이나 리스트(List)를 정렬할 수 있다.
기본 정렬 조건은 오름차순이다.
그 이유는 클래스 내에 기본적으로 구현되어 있는 Comparable Interface의 compareTo 메서드를 기준으로 하기 때문이다.
primitive type a[] : byte[], short[], char[], double[], long[], int[], float[]
Object a[] : Integer[], Double[], Character[], String[] 등
sort() 메서드의 종류는 다양하다.
- - public static void sort(primitive type a[])
- - public static void sort(primitive type a[], int fromIndex, int toIndex)
- - public static void sort(Object[] a)
- -public void sort(Object[] a, int fromIndex, int toIndex)
- - public static <T> sort(T[] a, Comparator<? super T> c)
- - public static <T> sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
오름차순 정렬
별다른 조건 없이 배열만 파라미터로 전달해주면 오름차순으로 정렬된다.
primitive type 배열 오름차순 정렬 (int)
예제
import java.util.Arrays;
public class ArraySort{
public static void main(Stringp[] args){
int arr[] = {5, 3, 8, 10};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
출력 결과
[3, 5, 8, 10]
Object 클래스 배열 오름차순 정렬 (String)
예제
import java.util.Arrays;
public class ArraySort{
public static void main(Stringp[] args){
int String = {"ABC", "B", "A", "AB"};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
출력 결과
[A, AB, ABC, B]
내림차순 정렬
Collections 클래스의 reverseOrder() 메서드와 Wrapper 클래스를 이용하여 정렬할 수 있다.
primitive type 배열 내림차순 정렬 (int)
primitive type 배열은 Object 클래스를 상속하는 Wrapper 클래스로 Boxing 해준 뒤 Collections.reverseOrder() 메서드를 사용할 수 있다.
primitive type -> Wrapper class = boxing
primitive type | Wrapper class |
byte | Byte |
char | Character |
int | Integer |
float | Float |
double | Double |
boolean | Boolean |
long | Long |
short | Short |
예제
import java.util.Arrays;
public class ArraySort{
public static void main(Stringp[] args){
int arr[] = {5, 3, 8, 10};
Integer arr2[] = Integer.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(arr2, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
}
}
출력 결과
[3, 5, 8, 10]
Object 클래스 배열 내림차순 정렬 (String)
Collections.reverOrder() 를 두 번째 파라미터로 넣어주면 된다.
예제
import java.util.Arrays;
public class ArraySort{
public static void main(Stringp[] args){
String arr[] = {"BC", "AB", "A", "C"};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
}
}
출력 결과
[A, AB, BC, C]
참고
https://yadon079.github.io/2020/java/arrays-sort
Arrays.sort() :: 개발자 한선우
Java 배열 정렬 (내림차순 / 오름차순)
yadon079.github.io
https://bangu4.tistory.com/287
[Java] int, String 배열 오름차순/내림차순 정렬
배열은 기본적으로 Arrays.Sort()를 이용해서 정렬한다. 1차원 배열은 Sort에 해당 배열을 인자로 넣어 기본적으로 오름차순 정렬을 하는데, 내림차순 정렬을 하기 위해서는 두번째 인자로 Collections.r
bangu4.tistory.com
'Java' 카테고리의 다른 글
[JAVA] 10진수를 2진수로 변환하기 (0) | 2023.04.03 |
---|---|
[Java] 문자열을 배열로, 배열을 문자열로 변환하기/String.split(), String.join() (0) | 2022.06.18 |
[Java] 정수를 문자열로 변환하기/int를 String으로 변환 (0) | 2022.06.13 |
[Java] 제곱 연산하기 Math.pow() (0) | 2022.06.12 |
[Java] 제곱근(루트) 구하기 Math.sqrt() (0) | 2022.06.12 |