[java] 자바 함수형 인터페이스를 사용하여 빠른 정렬 알고리즘을 구현하는 방법은 어떻게 되나요?
자바에서 빠른 정렬 알고리즘을 구현하기 위해 함수형 인터페이스를 사용할 수 있습니다. 함수형 인터페이스는 하나의 추상 메서드만 가지고 있는 인터페이스를 말합니다. 이를 활용하여 람다 표현식으로 정렬 기준을 정의하고, 이를 이용해 배열을 정렬할 수 있습니다.
먼저, 사용할 함수형 인터페이스로는 Comparator
인터페이스를 사용할 수 있습니다. Comparator
인터페이스는 compare
메서드를 가지고 있어 두 개의 객체를 비교할 수 있습니다.
import java.util.Arrays;
import java.util.Comparator;
public class QuickSort {
public static void main(String[] args) {
int[] arr = {5, 2, 8, 1, 3};
// 람다 표현식으로 Comparator 정의
Comparator<Integer> comparator = (a, b) -> a - b;
// 배열 정렬
Arrays.sort(arr, comparator);
// 정렬 결과 출력
for (int num : arr) {
System.out.println(num);
}
}
}
위 예제에서는 Comparator
인터페이스를 구현하기 위해 람다 표현식을 사용했습니다. 람다 표현식 (a, b) -> a - b
는 두 개의 정수를 뺀 결과를 반환하는 역할을 합니다. 이를 통해 배열을 오름차순으로 정렬할 수 있습니다.
Arrays.sort(arr, comparator)
메서드를 사용하여 배열 arr
을 comparator
를 기준으로 정렬하였습니다. 마지막으로 for
문을 이용하여 정렬된 결과를 출력하였습니다.
함수형 인터페이스를 이용하여 빠른 정렬 알고리즘을 구현할 수 있으며, 이는 코드의 가독성과 유지보수성을 향상시킬 수 있는 장점이 있습니다.
참고자료: