반응형
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 |
Tags
- 인텔리제이
- vscode
- 테이블
- IntelliJ
- Maven
- 문자열
- Eclipse
- 자바스크립트
- json
- table
- CMD
- 배열
- js
- string
- Button
- Java
- input
- list
- date
- Visual Studio Code
- windows
- ArrayList
- CSS
- 이클립스
- javascript
- 이탈리아
- Array
- html
- 자바
- 정규식
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.parallelSort()로 병렬 정렬하기 본문
자바에서 배열 정렬하면 보통 Arrays.sort()
를 많이 씁니다.
그런데 대용량 배열을 정렬할 때는 시간이 오래 걸릴 수 있죠.
이럴 때 더 빠른 성능을 낼 수 있는 방법이 바로 Arrays.parallelSort()
입니다.
이 메서드는 Java 8에서 추가된 기능으로, 멀티코어 CPU를 활용해 배열을 병렬로 정렬할 수 있습니다.
1. Arrays.parallelSort()란?
- 내부적으로 Fork/Join 프레임워크를 활용하여 배열을 여러 조각으로 나눠 병렬 정렬
- 정렬된 조각들을 다시 합쳐 최종 결과를 만듭니다
- 멀티코어 환경에서 성능 이점이 있으며, 배열 크기가 클수록 효과가 큽니다
👉 메서드 시그니처:
public static void parallelSort(int[] a)
public static void parallelSort(Object[] a)
public static void parallelSort(int[] a, int fromIndex, int toIndex)
2. 기본 사용 예제
import java.util.Arrays;
public class ParallelSortExample1 {
public static void main(String[] args) {
int[] arr = {9, 3, 7, 1, 5, 2};
Arrays.parallelSort(arr);
System.out.println(Arrays.toString(arr));
}
}
실행 결과
[1, 2, 3, 5, 7, 9]
👉 일반적인 Arrays.sort()
와 동일하게 정렬된 결과를 얻을 수 있습니다.
3. 특정 구간만 정렬하기
부분적으로만 정렬도 가능합니다.
import java.util.Arrays;
public class ParallelSortExample2 {
public static void main(String[] args) {
int[] arr = {9, 3, 7, 1, 5, 2};
// 인덱스 1부터 4까지 정렬 (3,7,1 만 정렬됨)
Arrays.parallelSort(arr, 1, 4);
System.out.println(Arrays.toString(arr));
}
}
실행 결과
[9, 1, 3, 7, 5, 2]
👉 배열 전체가 아니라 원하는 범위만 정렬할 수 있습니다.
4. 문자열 배열 정렬
객체 배열에도 그대로 적용됩니다.
import java.util.Arrays;
public class ParallelSortExample3 {
public static void main(String[] args) {
String[] names = {"Tom", "Alice", "Bob", "David"};
Arrays.parallelSort(names);
System.out.println(Arrays.toString(names));
}
}
실행 결과
[Alice, Bob, David, Tom]
5. parallelSort vs sort 성능 비교
- 작은 배열 (예: 1,000개 이하) → 오히려
Arrays.sort()
가 더 빠를 수 있음 - 큰 배열 (예: 수십만 개 이상) →
Arrays.parallelSort()
가 멀티코어를 활용해 성능 우위
즉, 데이터 크기에 따라 적절히 선택하는 것이 중요합니다.
6. 정리
Arrays.parallelSort()
→ 배열을 병렬 정렬하는 메서드- 내부적으로 Fork/Join을 활용하여 성능 최적화
- 소규모 배열은 일반
sort()
가 더 효율적일 수도 있음 - 대규모 배열에서 성능 향상을 기대할 수 있음
👉 배열이 크다면 Arrays.parallelSort()
로 멀티코어 성능을 활용하자!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Collections.reverse()로 리스트 순서 뒤집기 (0) | 2025.09.02 |
---|---|
[Java 기초] Collections.sort()로 리스트 정렬하기 (1) | 2025.09.01 |
[Java 기초] Arrays.mismatch()로 배열의 차이점 찾기 (0) | 2025.08.31 |
[Java 기초] Arrays.deepToString()으로 다차원 배열 출력하기 (0) | 2025.08.31 |
[Java 기초] Arrays.deepEquals()로 다차원 배열 비교하기 (0) | 2025.08.30 |
Comments