일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 데이터타입
- 홀수
- 유클리드 호제법
- valueof
- 문자열 숫자 변환
- 최대공배수
- algorithm
- Python
- PaaS
- aws
- SaaS
- IntelliJ
- 11652
- parseInt
- 프로젝트 생성
- 프로그래머스
- 2진수
- 짝수
- 백준
- INT
- level1
- 11004
- 자료형
- 알고리즘
- 최대공약수
- java
- 웹 서버
- IaaS
- 리스트
- 온프레미스
- Today
- Total
Ga0Lee
[Java] 배열 정렬하기/오름차순, 내림차순 - Arrays.sort() / primitive type, Object class, boxing 본문
[Java] 배열 정렬하기/오름차순, 내림차순 - Arrays.sort() / primitive type, Object class, boxing
가영리 2022. 6. 23. 03:08알고리즘 문제를 풀다 보면 배열이나 리스트를 정렬해야 하는 경우가 많다. 그럴 때마다 반복문을 이용해 정렬하는 것보다 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
https://bangu4.tistory.com/287
'Java' 카테고리의 다른 글
[Java] JSON 형식으로 변환하고 전송하기 ObjectMapper & OutputStream (1) | 2024.10.28 |
---|---|
[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 |