当前位置:   article > 正文

Java数组binarySearch()方法_arrays.binarysearch() arraylist

arrays.binarysearch() arraylist

binarySearch() 方法

Arrays类有一种常用的方法-binarySearch(),可以使用二分搜索法来搜索指定数组,以获得指定对象。该方法返回要搜索元素的索引值。需要注意的是,使用binarySearch()方法前,必须先用Arrays.sort()方法排序,否则结果可能不符合预期

		binarySearch(Object[]a, Object key)
  • 1

其中参数a表示搜索的数组,参数key表示要搜索的值。以下有两种情况:

  • 如果搜索值是搜索数组里的元素,则返回值大于等于0。因为是从0开始计数。
  • 如果搜索值不是搜索数组里的元素,则返回值小于等于0。

example:

public class Test{
    public static void main(String[] args){
        int[] arr = {4, 3, 1, 9, 5, 8};
        ArrayList<Integer> arr1 = new ArrayList<Integer>();
        arr1.add(10);
        arr1.add(4);
        arr1.add(8);
        arr1.add(9);
        arr1.add(-100);
        Arrays.sort(arr);
        Collections.sort(arr1);
        int s1 = Arrays.binarySearch(arr, 6);
        int s2 = Arrays.binarySearch(arr, 3);
        int s3 = Arrays.binarySearch(arr, -3);
        int s4 = Collections.binarySearch(arr1, 0);
        int s5 = Collections.binarySearch(arr1, 8);

        System.out.println("s1 value is " + s1);
        System.out.println("s2 value is " + s2);
        System.out.println("s3 value is " + s3);
        System.out.println("s4 value is " + s4);
        System.out.println("s5 value is " + s5);
        System.out.println(arr1);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

output:

s1 value is -5
s2 value is 1
s3 value is -1
s4 value is -2
s5 value is 2
[-100, 4, 8, 9, 10]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • int[]类型静态数组用Arrays.sort(array name)来进行sort
  • ArrayList动态数组用Collections.sort(array name)来进行sort
  • 如果key在数组内,则返回值大于等于0并且返回的值是数组的index。如果不在数组内则返回的值是负数。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/502645
推荐阅读
相关标签
  

闽ICP备14008679号