在本文中,我将向您展示如何在Java中使用该方法。Arrays.binarySearch()
什么是爪哇?Arrays.binarySearch()
根据官方文档关于该方法:Arrays.binarySearch()
(它)使用二进制搜索算法在指定的字节数组中搜索指定的值。
在进行此调用之前,必须对数组进行排序(如按 sort(byte[]) 方法排序)。如果未排序,则结果未定义。
如果数组包含具有指定值的多个元素,则无法保证可以找到哪一个。
简单地说,该方法可以在排序数组中查找给定元素,并在找到时返回其索引。Arrays.binarySearch()
该方法将要搜索的数组作为第一个参数,将要查找的键作为第二个参数。此程序的输出将是:Arrays.binarySearch()
请记住,该方法返回找到的项的索引,而不是项本身。因此,您可以将索引存储在一个整数中,就像本示例中使用的一样。
默认情况下,该方法使用数组的第一个索引作为搜索的起点,使用数组的长度作为搜索的终点。因此,在这种情况下,起始索引为 ,结束索引为 。06
您可以自己定义它们,而不是使用默认的起始索引和结束索引。例如,如果要执行从索引到索引的搜索,可以按如下方式执行此操作:24
在本例中,该方法将要搜索的数组作为第一个参数,起始索引作为第二个参数,结束索引作为第三个参数,key 作为第四个参数。Arrays.binarySearch()
只要将结束索引保持在数组的长度内,该方法就应该可以正常工作。但是,如果超过此值,则会出现异常。Array index out of range
这很简单吧?如果找到该方法,则返回元素的索引。但是,如果它找不到给定的元素,会发生什么呢?
当找不到给定的元素时会发生什么?Arrays.binarySearch()
再次根据官方文档的方法:Arrays.binarySearch()
(该方法返回搜索键的) 索引,如果它包含在指定范围内的数组中;否则。
插入点定义为将键插入到数组中的点:范围中大于键的第一个元素的索引,或者(结束索引)如果范围中的所有元素都小于指定的键。
请注意,这保证了返回值将>= 0 当且仅当找到键时。(-(insertion point) - 1)toIndex
不是很清楚吧?让我解释一下。第一行指出,如果在数组中找到该方法,该方法将返回搜索键的索引。
但如果找不到,则输出将等于 的值。在这里,根据搜索关键字,可以具有不同的值。(-(insertion point) - 1)insertion point
假设我们有一个数组和一个搜索键,它显然不在数组中。在这种情况下,搜索键小于数组的所有元素。但第一个大于搜索键的元素是 。因此,在这种情况下,将是:[5, 6, 7, 8, 9, 10]05insertion point
您可以按如下方式将其实现到代码片段中:
再次假设我们有一个数组和一个搜索键,它显然不在数组中。在这种情况下,搜索键大于数组的所有元素。因此,在这种情况下,将是:[5, 6, 7, 8, 9, 10]12insertion point
请记住,当您不手动定义结束索引时,该方法使用数组的长度作为结束索引,在本例中为 。6
您可以按如下方式将其实现到代码片段中:
但是,如果手动定义起始索引和结束索引,则结果将发生更改,如下所示:
尝试自己计算这些值。您还可以将该方法与如下字符一起使用:Arrays.binarySearch()
对于这个来说,差不多就是这样。我希望你现在明白了如何使用这个方法。Arrays.binarySearch()