Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- mysql
- Linux
- java
- IntelliJ
- 명령어
- MariaDB
- springboot
- 오블완
- 인덱스
- 리눅스
- 인터페이스
- PostgreSQL
- 책
- 티스토리챌린지
- docker
- Javascript
- 네트워크
- DBMS
- 후기
- 책추천
- SQL
- spring
- mssql
- 독서
- git
- oracle
- github
- Python
- 넥사크로
- pandas
Archives
- Today
- Total
hanker
[Java] 배열 안에 데이터 정렬하기 (Arrays.sort) 본문
반응형
Java에서 배열안에 데이터를 정렬하는 방법에 대해서 알아보자.
1. Arrays.sort()
가장 간단하면서 일반적인 방법인 Arrays.sort() 메서드를 알아보자.
기본 타입 배열 정렬
public class Main {
public static void main(String[] args) throws Exception {
// 정수 배열 정렬
int[] numbers = {5, 2, 8, 1, 9, 3};
Arrays.sort(numbers);
System.out.println("정렬된 정수 배열: " + Arrays.toString(numbers));
// 문자열 배열 정렬
String[] names = {"A", "D", "S", "C"};
Arrays.sort(names);
System.out.println("정렬된 문자열 배열: " + Arrays.toString(names));
}
}
부분 배열 정렬
배열의 특정 구간만 정렬하기 위해 시작 인덱스와 끝 인덱스를 지정해서 정렬을 한다.
public class Main {
public static void main(String[] args) throws Exception {
int[] numbers = {5, 2, 8, 1, 9, 3, 7, 4};
Arrays.sort(numbers, 2, 6); // 인덱스 2부터 5까지 정렬
System.out.println(Arrays.toString(numbers));
}
}
2. 내림차순 정렬
기본 타입 배열을 내림차순으로 정렬해보자.
Collections.reverseOrder() 사용
public class Main {
public static void main(String[] args) throws Exception {
// Integer 배열 (wrapper class)
Integer[] numbers = {5, 2, 8, 1, 9, 3};
Arrays.sort(numbers, Collections.reverseOrder());
System.out.println("내림차순 정렬: " + Arrays.toString(numbers));
}
}
기본 타입(오름차순)으로 정렬 후 뒤집기
public class Main {
public static void main(String[] args) throws Exception {
int[] numbers = {5, 2, 8, 1, 9, 3};
Arrays.sort(numbers);
// 배열 뒤집기
for (int i = 0; i < numbers.length / 2; i++) {
int temp = numbers[i];
numbers[i] = numbers[numbers.length - 1 - i];
numbers[numbers.length - 1 - i] = temp;
}
System.out.println("내림차순 정렬: " + Arrays.toString(numbers));
}
}
정리
Java의 Arrays.sort()는 내부적으로 아래와 같은 알고리즘을 사용한다.
- 기본 타입 배열: Dual-Pivot Quicksort (평균 O(n log n))
- 객체 배열: TimSort (최악의 경우에도 O(n log n) 보장)
보다 더 복잡한 정렬 조건이 필요하다면 comparator를 사용하면 된다.
반응형
'JAVA' 카테고리의 다른 글
[Java] filter() 메서드 (조건에 맞는 데이터만 출력) (6) | 2025.06.29 |
---|---|
[JAVA] Cookie Control (쿠키 추가 및 삭제하는 방법) (2) | 2025.06.21 |
[Java] javax.servlet.http.HttpSession (웹 사용자 세션 관리) (4) | 2025.06.15 |
[JAVA] java 11 버전과 java 17 버전의 핵심 차이점 (3) | 2025.05.29 |
[JAVA] Java 11 이상에서 sun.misc.BASE64Encoder 대체하기 (1) | 2025.05.28 |