내 배열에없는 문자 인 키를 제공 할 때 왜이 메서드가 ArrayIndexOutOfBounds
예외를 제공하는지 알고 싶습니다. 키가 문자가 아닌 다른 값이면 값을 반환하는 데 문제가없는 것처럼 보입니다. 당신의 binarySearch
방법에서"ArrayIndexOutOfBounds"를 생성하는 binarySearch 메서드 예외
public class BinarySearch2 {
public static void main(String[] args) {
String[] array = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
String key = "K";
String found = binarySearch(array, key);
System.out.println(found);
}
public static String binarySearch(String[] array, String key) {
int low = 0;
int high = array.length;
int mid = (low + high)/2;
//int i = 0;
while (low <= high) {
//System.out.print(i + " ");
if (array[mid].compareTo(key) < 0) {
System.out.println(array[mid].compareTo(key));
low = mid + 1;
mid = (low + high)/2;
}
else if (array[mid].compareTo(key) > 0) {
high = mid - 1;
mid = (low + high)/2;
}
else
return array[mid];
//i++;
}
return "-1";
}
}
당신은 점점 예외? 전체 스택 추적을 게시 할 수 있습니까? –
Arrays.binarySearch를 사용하지 않는 이유는 무엇입니까? –
@EugeneRetunsky .. 프로그래밍의 초기 단계에 OP가있을 수 있습니다. 그렇다면이 방법이 더 좋을 것입니다. 그는 나중에 사용할 수있는 방법을 알게 될 수 있습니다 .. 그는 개념을 얻은 후에 ... –