binarySearch在java的查找實(shí)例用法
在java數(shù)組中,查找數(shù)組元素是比較基礎(chǔ)的操作了,arrays類的binarySearch就是專門實(shí)現(xiàn)指定元素的。同時(shí)它也屬于我們常說的二分法。所以作用的范圍是排序過的數(shù)組。下面我們就binarySearch的概念、使用注意進(jìn)行說明,同時(shí)分出它的兩種返回值情況,最后進(jìn)行查找的實(shí)例分享。
1.概念
通過二分法在已經(jīng)排好序的數(shù)組中查找指定的元素,并返回該元素的下標(biāo)。
2.使用注意
此法為二分搜索法,故查詢前需要用sort()方法將數(shù)組排序,如果數(shù)組沒有排序,則結(jié)果是不確定的。如果數(shù)組中含有多個(gè)指定值的元素,則無法保證找到的是哪一個(gè)。
3.返回值
該方法的返回值類型為整型,具體返回值具體分為以下兩種情況:
(1)如果數(shù)組中存在該元素,則會(huì)返回該元素在數(shù)組中的下標(biāo)
(2)如果數(shù)組中不存在該元素,則會(huì)返回-(插入點(diǎn) + 1)
這里的插入點(diǎn)具體指的是:如果該數(shù)組中存在該元素,那個(gè)元素在該數(shù)組中的下標(biāo)
4.實(shí)例
public static void main(String[] args) {
List<Integer> lists = new ArrayList<Integer>();
lists.add(3);
lists.add(6);
lists.add(8);
lists.add(7);
lists.add(1);
// 原來的集合
System.out.println("原來的集合:");
for (Integer str : lists) {
System.out.print(str + " ");
}
// 對(duì)集合進(jìn)行排序
Collections.sort(lists);
System.out.println("\n排序后的集合:");
for (Integer str : lists) {
System.out.print(str + " ");
}
// 使用binarySearch方法查找集合中的元素
int i = Collections.binarySearch(lists, 2);
System.out.println("\n2所在的位置:" + i);
}
到此這篇關(guān)于binarySearch在java的查找實(shí)例用法的文章就介紹到這了,更多相關(guān)binarySearch在java的查找使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何讓Jackson JSON生成的數(shù)據(jù)包含的中文以u(píng)nicode方式編碼
這篇文章主要介紹了如何讓Jackson JSON生成的數(shù)據(jù)包含的中文以u(píng)nicode方式編碼。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
js中去除字符串中所有的html標(biāo)簽代碼實(shí)例
這篇文章主要介紹了js中去除字符串中所有的html標(biāo)簽代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
java開啟遠(yuǎn)程debug竟有兩種參數(shù)(最新推薦)
這篇文章主要介紹了java開啟遠(yuǎn)程debug竟有兩種參數(shù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Java?NIO下ByteBuffer的常用方法學(xué)習(xí)
這篇文章主要帶大家來初步學(xué)習(xí)一下NIO?中的?ByteBuffer的應(yīng)用與常用方法,文中的示例代碼講解詳細(xì),對(duì)我們深入學(xué)習(xí)Java有一定的幫助,感興趣的可以了解一下2023-05-05
一文詳解Spring事務(wù)的實(shí)現(xiàn)與本質(zhì)
這篇文章主要介紹了Spring中事務(wù)的兩種實(shí)現(xiàn)方式:聲明式事務(wù)、編程式事務(wù)以及他們的本質(zhì)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04
IntelliJ IDEA中程序包org.slf4j找不到的解決
這篇文章主要介紹了IntelliJ IDEA中程序包org.slf4j找不到的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
SpringCloud?服務(wù)注冊(cè)中的nacos實(shí)現(xiàn)過程
這篇文章主要介紹了SpringCloud?服務(wù)注冊(cè)之nacos實(shí)現(xiàn)過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

