binarySearchについて
こんにちは、Javaを勉強しているものです。
binarySearchをしたとき、存在しない値を検索すると負の値が戻されると聞きましたが、その数値はどのようにして決められるのでしょうか?
import java.util.*;
class Sample {
public static void main(String[] args){
String[] a ={"he", "is", "a", "boy"};
List<String> li = Arrays.asList(a);
for(String s : a) System.out.print(S + ":");
System.out.println();
Collections.sort(li);
for(String s: li) System.out.print(s + ":");
System.out.println();
System.out.println(Collections.binarySearch(li, "boy"));
System.out.println(Collections.binarySearch(li, "girl"));
Collections.reverse(li);
for(String s: li) System.out.print(S + ":");
}
}
このコードの実行結果は、
he:is:a:boy:
a:boy:he:is:
1
-3
is:he:boy:a:
となります。
"girl"は、リストに存在しないので負の値である"-3"が返されたわけですが、3という数字がどのような理由で出てきたのか教えてください。
宜しくお願い致します。