当前位置:首页 > 问答库 > Java基础知识 > 详情

如何在Java中使用数组

来源:千锋教育

发布:syq

2022-09-13

Java基础知识 分类问答库

推荐答案

  在本文中,我将向您展示如何在Java中使用该方法。Arrays.binarySearch()

如何在Java中使用数组

  什么是爪哇?Arrays.binarySearch()

  根据官方文档关于该方法:Arrays.binarySearch()

  (它)使用二进制搜索算法在指定的字节数组中搜索指定的值。

  在进行此调用之前,必须对数组进行排序(如按 sort(byte[]) 方法排序)。如果未排序,则结果未定义。

  如果数组包含具有指定值的多个元素,则无法保证可以找到哪一个。

  简单地说,该方法可以在排序数组中查找给定元素,并在找到时返回其索引。Arrays.binarySearch()

1

  该方法将要搜索的数组作为第一个参数,将要查找的键作为第二个参数。此程序的输出将是:Arrays.binarySearch()

2

  请记住,该方法返回找到的项的索引,而不是项本身。因此,您可以将索引存储在一个整数中,就像本示例中使用的一样。

  默认情况下,该方法使用数组的第一个索引作为搜索的起点,使用数组的长度作为搜索的终点。因此,在这种情况下,起始索引为 ,结束索引为 。06

  您可以自己定义它们,而不是使用默认的起始索引和结束索引。例如,如果要执行从索引到索引的搜索,可以按如下方式执行此操作:24

3

  在本例中,该方法将要搜索的数组作为第一个参数,起始索引作为第二个参数,结束索引作为第三个参数,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

4

  您可以按如下方式将其实现到代码片段中:

5

  再次假设我们有一个数组和一个搜索键,它显然不在数组中。在这种情况下,搜索键大于数组的所有元素。因此,在这种情况下,将是:[5, 6, 7, 8, 9, 10]12insertion point

6

  请记住,当您不手动定义结束索引时,该方法使用数组的长度作为结束索引,在本例中为 。6

  您可以按如下方式将其实现到代码片段中:

7

  但是,如果手动定义起始索引和结束索引,则结果将发生更改,如下所示:

7

  尝试自己计算这些值。您还可以将该方法与如下字符一起使用:Arrays.binarySearch()

8

  对于这个来说,差不多就是这样。我希望你现在明白了如何使用这个方法。Arrays.binarySearch()

更多问题在线答疑

导师线上坐镇
解答个性化学习难题

立即提问

上一篇

使用过哪些JVM相关的工具

下一篇

学习java的步骤是什么

相关问题

更多 >>
毕设新思路 | 精美的OA管理系统源码你不想要一份吗? 基于Spring体系,事务的特性和实现机制 j查询与javaScript有什么区别 NullPointerException异常二番战|千锋老师给你一招搞定 Java大牛必会|分布式缓存实现方案之Spring Cache(二) Java大牛必会|分布式缓存实现方案之Spring Cache(一)
热门问题
Java基础知识 Java培训机构 Java培训费用 Java培训时间 java培训课程 Java培训就业 零基础学Java java薪资待遇 java学习路线

全国咨询热线400-811-9990