java의 binarySearch 메서드는 두 클래스에서 제공된다:
두 메서드는 동일한 방식으로 작동하지만, 사용되는 데이터 타입이 다름. Collections.binarySearch는 List에, Arrays.binarySearch는 배열에 사용.
대상: List
정렬된 리스트에서 요소를 찾거나 삽입 위치를 계산
public class BinarySearchCollections {
public static void main(String[] args) {
List<Integer> sortedList = Arrays.asList(1, 3, 4, 7, 10);
int index = Collections.binarySearch(sortedList, 4);
System.out.println("Element found at index: " + index); // 출력: 2
int insertIndex = Collections.binarySearch(sortedList, 5);
int insertPosition = -insertIndex - 1;
System.out.println("Insert position for 5: " + insertPosition); // 출력: 3
}
}
대상: 배열 (array)
정렬된 배열에서 요소를 찾거나 삽입 위치를 계산
import java.util.*;
public class BinarySearchArrays {
public static void main(String[] args) {
int[] sortedArray = {1, 3, 4, 7, 10};
int index = Arrays.binarySearch(sortedArray, 4);
System.out.println("Element found at index: " + index); // 출력: 2
int insertIndex = Arrays.binarySearch(sortedArray, 5);
int insertPosition = -insertIndex - 1;
System.out.println("Insert position for 5: " + insertPosition); // 출력: 3
}
}