2012-06-13 52 views
2

在Java中,Arrays.binarySearch始終搜索整個數組。有時數組的一部分尚未填充。是否有任何功能來搜索數組的一部分,例如Java:希望二進制搜索數組的子集

int binarySearch(int[] a, int end, int value) 

是的,我可以只使用一個TreeMap<Integer>,但我有很多的這些和TreeMap<Integer>使用幾次更多的內存比INT []。

是的,我當然可以寫一個二進制搜索,但考慮到Arrays.binarySearch的存在,似乎我不應該寫我自己的。

回答

9

有一個重載Arrays.binarySearch()認爲正是這一點:

public static int binarySearch(int[] a, 
           int fromIndex, 
           int toIndex, 
           int key) 

它是在Java中可用1.6+。

+1

哦duuuuuh!出於某種原因,Google'Java X'總是首先呈現舊文檔。現在我覺得很尷尬。如果我能降低自己的問題,我會的。 –

+1

@kevincline:對於Google和舊的Java文檔,您是完全正確的。我通常搜索'java6'或'java7',例如'數組java6'。 – NPE