博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中数组Arrays.binarySearch,快速查找数组内元素位置
阅读量:6906 次
发布时间:2019-06-27

本文共 974 字,大约阅读时间需要 3 分钟。

在数组中查找一个元素,Arrays提供了一个方便查询的方法。Arrays.binarySearch();

测试列子:

 

public class MainTestArray {	public static void main(String args[]){		String[] intArray = new String[]{"a","b","c","d","e","f","g","h","i","j",};		int positon = Arrays.binarySearch(intArray, "d");		System.out.println("position is:"+positon);	}}

测试结果:

 

 

position is:3

在数组内查询一个元素,我们可以用“二分法”,上述方法其实也是用的二分法。

 

实现代码:

 

public static int binarySearch(char[] array, int startIndex, int endIndex, char value) {        checkBinarySearchBounds(startIndex, endIndex, array.length);        int lo = startIndex;        int hi = endIndex - 1;        while (lo <= hi) {            int mid = (lo + hi) >>> 1;//无符号右移            char midVal = array[mid];            if (midVal < value) {                lo = mid + 1;            } else if (midVal > value) {                hi = mid - 1;            } else {                return mid;  // value found            }        }        return ~lo;  // value not present    }

详情请查看java源代码实现。Arrays类

 

 

转载地址:http://mqrdl.baihongyu.com/

你可能感兴趣的文章
directX学习系列8 颜色融合(转)
查看>>
方法:C#在WinForm中如何将Image存入SQL2000和取出显示
查看>>
码农翻身
查看>>
在windows下运行docker的问题【Error getting IP address: ***】
查看>>
python基础一 day16 匿名函数
查看>>
参考_Android中,如何新建一个界面,并且实现从当前界面切换到到刚才新建的(另外一个)界面...
查看>>
Linux常用命令大全
查看>>
Jenkins卸载方法(Windows/Linux/MacOS)
查看>>
《过节》——北岛
查看>>
并发、并行、同步、异步、多线程的区别?
查看>>
JavaScript的写类方式(5)——转
查看>>
Java并发编程笔记—摘抄—基础知识
查看>>
simple-spring-memcached统一缓存的使用实例
查看>>
Codeforces 600E - Lomsat gelral(树上启发式合并)
查看>>
[Hnoi2013]消毒
查看>>
[HNOI2015]开店
查看>>
容斥与反演
查看>>
GitHub 配置指南
查看>>
swift swift学习笔记--函数和闭包
查看>>
Java 面向对象,封装,继承
查看>>