亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

Java數組使用binarySearch()方法查找指定元素的實現

瀏覽:75日期:2022-08-18 08:21:39

查找數組是指從數組中查詢指定位置的元素,或者查詢某元素在指定數組中的位置。使用 Arrays 類的 binarySearch() 方法可以實現數組的查找,該方法可使用二分搜索法來搜索指定數組,以獲得指定對象,該方法返回要搜索元素的索引值。

binarySearch() 方法有多種重載形式來滿足不同類型數組的查找需要,常用的重載形式有兩種。

(1) 第一種形式如下:

binarySearch(Object[] a,Object key);

其中,a 表示要搜索的數組,key 表示要搜索的值。如果 key 包含在數組中,則返回搜索值的索引;否則返回 -1 或“-插入點”。插入點指搜索鍵將要插入數組的位置,即第一個大于此鍵的元素索引。

在進行數組查詢之前,必須對數組進行排序(可以使用 sort() 方法)。如果沒有對數組進行排序,則結果是不確定的。如果數組包含多個帶有指定值的元素,則無法確認找到的是哪一個。例 1聲明 double 類型的 score 數組,接著調用 Arrays 類的 sort() 方法對 score 數組排序,排序后分別查找數組中值為 100 和 60 的元素,分別將結果保存到 index1 和 index2 變量中,最后輸出變量的值。代碼如下:

public static void main(String[] args) { double[] score = { 99.5, 100, 98, 97.5, 100, 95, 85.5, 100 }; Arrays.sort(score); int index1 = Arrays.binarySearch(score, 100); int index2 = Arrays.binarySearch(score, 60); System.out.println('查找到 100 的位置是:' + index1); System.out.println('查找到 60 的位置是:' + index2);}

執行上述代碼,輸出結果如下:查找到 100 的位置是:5查找到 60 的位置是:-1

(2) 除了上述形式外,binarySearch() 還有另一種常用的形式,這種形式用于在指定的范圍內查找某一元素。語法如下:

binarySearch(Object[] a,int fromIndex,int toIndex,Object key);

其中,a 表示要進行查找的數組,fromIndex 指定范圍的開始處索引(包含開始處),toIndex 指定范圍的結束處索引(不包含結束處),key 表示要搜索的元素。

在使用 binarySearch() 方法的上述重載形式時,也需要對數組進行排序,以便獲取準確的索引值。如果要查找的元素 key 在指定的范圍內,則返回搜索鍵的索引;否則返回 -1 或 “-插入點”。插入點指要將鍵插入數組的位置,即范圍內第一個大于此鍵的元素索引。

例 2

對例 1 中創建的 score 數組進行查找元素,指定開始位置為 2,結束位置為 6。代碼如下:

public static void main(String[] args) { double[] score = {99.5,100,98,97.5,100,95,85.5,100}; Arrays.sort(score); int index1 = Arrays.binarySearch(score,2,6,100); int index2 = Arrays.binarySearch(score,2,6,60); System.out.println('查找到 100 的位置是:'+index1); System.out.println('查找到 60 的位置是:'+ index2);}

執行上述代碼,輸出結果如下:查找到 100 的位置是:5查找到 60 的位置是:-3

注意:實現對數組進行查找的方法很多,但是使用 Arrays 對象的 binarySearch() 方法是最簡單、最方便的一種,因此該方法經常被應用。關于其他的查找方法這里不再演示,感興趣的讀者可以動手試一試。

到此這篇關于Java數組使用binarySearch()方法查找指定元素的實現的文章就介紹到這了,更多相關Java binarySearch查找指定元素內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 美女张开腿让人桶 | 九九视频高清视频免费观看 | 日本不卡免费高清一级视频 | 国产亚洲精品日韩已满十八 | 又黄又刺激下面流水的视频 | 色日韩| 欧美大片a一级毛片视频 | 中国国产一级毛片 | 亚洲免费在线视频 | 免费观看性欧美一级 | 男女午夜视频 | 久久一区二区三区不卡 | 69日本xxxxxxxxx13| 亚洲欧美激情精品一区二区 | 日本一级特黄a大片在线 | 亚洲国产亚洲片在线观看播放 | 深夜福利亚洲 | 日本xxxxx久色视频在线观看 | 亚洲国产第一 | 欧美满嘴射| 久久er热这里只有精品免费 | 91欧美一区二区三区综合在线 | 亚洲精品综合一区二区三区在线 | 免费人成网站 | 国产精品成人久久久久 | 在线观看免费亚洲 | 日本在线观看不卡免费视频 | 热re66久久精品国产99热 | 亚洲国产一区二区三区综合片 | 国产萌白酱在线一区二区 | 9久9久热精品视频在线观看 | 日韩色道 | 国产一级做a爱免费观看 | 最新更新国内自拍视频 | 欧美猛交xxxx免费看 | 久久久久久久久久久96av | 国产91精品一区 | 美女视频一区二区三区在线 | 一级a级国产不卡毛片 | 免费在线观看黄色毛片 | 欧美成人性做爰网站免费 |