电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

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

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

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

(1) 第一種形式如下:

binarySearch(Object[] a,Object key);

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

在進行數(shù)組查詢之前,必須對數(shù)組進行排序(可以使用 sort() 方法)。如果沒有對數(shù)組進行排序,則結(jié)果是不確定的。如果數(shù)組包含多個帶有指定值的元素,則無法確認找到的是哪一個。例 1聲明 double 類型的 score 數(shù)組,接著調(diào)用 Arrays 類的 sort() 方法對 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)查找某一元素。語法如下:

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

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

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

例 2

對例 1 中創(chuàng)建的 score 數(shù)組進行查找元素,指定開始位置為 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

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

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 浙江富广阀门有限公司| 高压包-点火器-高压发生器-点火变压器-江苏天网 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | SMN-1/SMN-A ABB抽屉开关柜触头夹紧力检测仪-SMN-B/SMN-C-上海徐吉 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 泥浆在线密度计厂家-防爆数字压力表-膜盒-远传压力表厂家-江苏大亚自控设备有限公司 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 顶呱呱交易平台-行业领先的公司资产交易服务平台 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 合肥升降机-合肥升降货梯-安徽升降平台「厂家直销」-安徽鼎升自动化科技有限公司 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 |