Java:想要对数组的子集进行二进制搜索

kev*_*ine 3 java binary-search

在Java中,Arrays.binarySearch始终搜索整个数组.有时阵列的一部分尚未填充.是否有任何函数可以搜索数组的一部分,例如

int binarySearch(int[] a, int end, int value)
Run Code Online (Sandbox Code Playgroud)

是的,我可以使用一个,TreeMap<Integer>但我有很多这些并TreeMap<Integer>使用比int []多几倍的内存.

是的,我当然可以写一个二进制搜索,但考虑到Arrays.binarySearch的存在,似乎我不应该写自己的.

NPE*_*NPE 10

有一个重载Arrays.binarySearch(),它正是这样做的:

public static int binarySearch(int[] a,
                               int fromIndex,
                               int toIndex,
                               int key)
Run Code Online (Sandbox Code Playgroud)

它适用于Java 1.6+.