java Arrays.binarySearch无法找到目标

use*_*630 8 java binary-search

String[] sortedArray = new String[]{"Quality", "Name", "Testing", "Package"};   

// Search for the word "cat" 
int index = Arrays.binarySearch(sortedArray, "Quality");  
Run Code Online (Sandbox Code Playgroud)

我总是得到-3.问题在于"Name".为什么我不能"Name"进入我的阵列?任何的想法?

Bar*_*ers 26

要使用binarySearch,您需要先自己对数组进行排序:

String[] sortedArray = new String[]{"Quality", "Name", "Testing", "Package"};   

java.util.Arrays.sort(sortedArray);

int index = Arrays.binarySearch(sortedArray, "Quality");  
Run Code Online (Sandbox Code Playgroud)


Jef*_*rey 6

必须对数组进行排序.来自binarySearch()的Javadoc:

在进行此调用之前,必须根据元素的自然顺序将范围按升序排序.如果未排序,则结果未定义.