我很困惑Arrays.binarySearch(Object[], Object)
.
public class SearchObjArray {
public static void main(String[] args){
String[] sa = {"one","two","three","four"};
Arrays.sort(sa);
for(String s : sa ){
System.out.println(s + " ");
}
System.out.println("\n one = " + Arrays.binarySearch(sa,"thro"));
}
}
Run Code Online (Sandbox Code Playgroud)
程序运行时,它返回位置-4
.我正在读书,它说,插入点表示为(-(insertionPoint)-1)
.为什么会这样?我无法理解这一点.
小智 5
插入点定义为将密钥插入阵列的点.
{"one","two","three","four"}
Run Code Online (Sandbox Code Playgroud)
排序是
{"four", "one", "three", "two"}
Run Code Online (Sandbox Code Playgroud)
然后throw
来了three
.所以插入点就是3
.结果就是这样
(-(insertionPoint) -1) =
(-(3) -1) =
-4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32 次 |
最近记录: |