import java.util.Arrays;
import java.util.Comparator;
public class MainClass {
public static void main(String args[]) {
String[] arr = { "c", "d", "b", "a", "e" };
InnerClass in = new InnerClass();
Arrays.sort(arr, in);
for (String str : arr) {
System.out.print(str + " ");
}
System.out.println(Arrays.binarySearch(arr, "b"));
}
static class InnerClass implements Comparator<String> {
public int compare(String s1, String s2) {
return s2.compareTo(s1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出 edcba -1
有关信息,如果我们将Arrays.binarySearch(arr, "b")替换 为 Arrays.binarySearch(arr, "e"),则输出为 Output edcba -6
您的数组未排序。
binarySearch 仅适用于排序数组:
在进行此调用之前,必须根据其元素的自然顺序(如 sort(Object[]) 方法)将数组按升序排序。如果未排序,则结果未定义。