程序在运行时可以打印哪些可能的值?
import java.util.*;
public class TestClass {
static String[] sa = { "a", "aa", "aaa", "aaaa" };
static { Arrays.sort(sa); }
public static void main(String[] args) {
String search = "";
if(args.length != 0) search = args[0];
System.out.println(Arrays.binarySearch(sa, search));
}
}
正确答案是-5到3之间的任何数字。
我仍然不明白正确的答案。
有三种可能性。
1)如果数组中的所有元素都小于搜索关键字,则插入点为4,因此返回-5。
2)如果数组中的所有元素都大于搜索关键字,则插入点为0,因此返回-1。
3)如果数组中的任何元素与搜索关键字匹配,则返回的值应在-5到-1之间。
那么如何返回0到3的值呢?
最佳答案
那么如何返回0到3的值呢?
如果为search = "aaaa"
,则输出为3
,因为这是方法binarySearch
返回的位置(索引)。如果发生以下情况,将会发生类似的事情:search = "aaa"
,输出将为2
search = "aa"
,输出将为1
search = "a"
,输出将为0
要了解这一点,请尝试打印数组sa
的元素:
System.out.println(sa[0]); // index 0
System.out.println(sa[1]); // index 1
System.out.println(sa[2]); // index 2
System.out.println(sa[3]); // index 3
输出:
a
aa
aaa
aaaa
关于java - Java SE 7 Arrays.binarySearch(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21493394/