栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Java中的自定义比较器在数组中搜索

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Java中的自定义比较器在数组中搜索

JavaDoc on

Arrays.binarySearch(...)
声明必须已对数组进行排序,因此比较器实际上将数组值与搜索字符串进行比较,并且
用于对数组进行再次排序。

这意味着您得到类似

compare(arr[x],"12")
和if条件指出两个字符串必须包含逗号,否则它们相等。并且
"12"
不包含任何逗号,因此
"12"
等于数组中的 每个 元素(总是返回0)。

编辑

查看源代码似乎支持我的假设。有这行,例如:

 //c is the Comparator //midVal is an element of your array  //key is the key parameter you passed to binarySearch(...) c.compare(midVal, key);

返回49999的原因是,第一个

mid
值位于index处
mid = (low + high) >> 1
(0 + 99999) >> 1 ==49999
并且由于比较器返回0,因此认为值相等。而繁荣,价值就是“发现”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号