Arrays類里的binarySearch方法的返回值總結
- 舉例原始數組 a 如下:
[3, 5, 8, 17, 12, 2]
- 第一步:必須先對數組進行排序
Arrays.sort(a) ;
,排序后的數組如下:
[2, 3, 5, 8, 12, 17]
- 如果找到關鍵字,則返回值為關鍵字在排序后的數組中的位置索引,且索引從0開始。
- 如果沒有找到關鍵字,返回值為負的插入點值,所謂插入點值就是第一個比關鍵字大的元素在數組中的位置索引,而且這個位置索引從1開始。
//結果顯示 0
System.out.println(Arrays.binarySearch(a,2)) ;
//結果顯示 -3
//4在數據中沒有,插入點即是3和5之間,位置索引從1開始數的話,這個位置就是3,取負即為-3
System.out.println(Arrays.binarySearch(a,4)) ;
重點說明:使用binarySearch查找時,務必先排序。
- 排序后的返回結果是負數就一定說明沒找到
- 不排序的話,即使數組中能找到相關關鍵字,那也有可以返回負數。