国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java數(shù)組使用binarySearch()方法查找指定元素的實(shí)現(xiàn)

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

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

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

(1) 第一種形式如下:

binarySearch(Object[] a,Object key);

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

在進(jìn)行數(shù)組查詢之前,必須對(duì)數(shù)組進(jìn)行排序(可以使用 sort() 方法)。如果沒(méi)有對(duì)數(shù)組進(jìn)行排序,則結(jié)果是不確定的。如果數(shù)組包含多個(gè)帶有指定值的元素,則無(wú)法確認(rèn)找到的是哪一個(gè)。例 1聲明 double 類型的 score 數(shù)組,接著調(diào)用 Arrays 類的 sort() 方法對(duì) score 數(shù)組排序,排序后分別查找數(shù)組中值為 100 和 60 的元素,分別將結(jié)果保存到 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);}

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

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

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

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

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

例 2

對(duì)例 1 中創(chuàng)建的 score 數(shù)組進(jìn)行查找元素,指定開始位置為 2,結(jié)束位置為 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);}

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

注意:實(shí)現(xiàn)對(duì)數(shù)組進(jìn)行查找的方法很多,但是使用 Arrays 對(duì)象的 binarySearch() 方法是最簡(jiǎn)單、最方便的一種,因此該方法經(jīng)常被應(yīng)用。關(guān)于其他的查找方法這里不再演示,感興趣的讀者可以動(dòng)手試一試。

到此這篇關(guān)于Java數(shù)組使用binarySearch()方法查找指定元素的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java binarySearch查找指定元素內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 成人黄色一级毛片 | 亚州色吧 | 精品亚洲视频在线观看 | 亚洲欧美国产中文 | 日本三级成人午夜视频网 | 欧美精品久久久久久久久大尺度 | 九九亚洲 | 国产精品亚洲天堂 | 免费永久国产在线视频 | 一级做a爱久久久久久久 | 欧美成人综合在线观看视频 | 亚洲成a人不卡在线观看 | 青草福利在线 | 黄色毛片视频校园交易 | 精品丝袜国产自在线拍亚洲 | 久久91亚洲精品久久91综合 | 欧美一级视 | 精品免费久久久久久成人影院 | 免费观看日本特色做爰视频在线 | 国产精品美女视视频专区 | 91免费网站在线看入口黄 | 国产成人精品男人免费 | 亚洲国产欧美视频 | 国产一区二区三区精品久久呦 | 久久99国产精品久久99 | 性亚洲精品 | 91热久久 | 欧美一级毛片在线一看 | 色综合久久加勒比高清88 | 国产成人精品日本亚洲专一区 | 国产a级精品特黄毛片 | 深夜福利成人 | 国产在线观看免费一级 | 国产一极毛片 | 久久精品在 | 成人网视频免费播放 | 91免费永久国产在线观看 | 免费区欧美一级毛片精品 | 国产成人综合网在线观看 | 亚洲韩国日本欧美一区二区三区 | 青青草原色 |