有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Java8 Streams API实现二进制搜索

我想知道是否可以使用Java8 Streams API实现二进制搜索?二进制搜索在搜索之前递归拆分数组。我们可以使用Java8StreamsAPI做同样的事情吗


共 (2) 个答案

  1. # 1 楼答案

    数组是有限的。数组有一个定义良好的开始、中间和结束,因此,二进制搜索可以很好地适应这种数据结构

    溪流是无限的。你可以通过网络连接或流媒体音乐服务传输信息,虽然有一个定义明确的开始,但也有一个定义不明确的中间或结束,因为流可能会突然中断,或者变得不完整,或者永远持续下去

    此外,流是单向的,不能递归到。一旦你播放流中的一个元素,它就会丢失,除非你把它缓存在本地的其他地方(我们会回到有限的数据结构)

    所以,不可以。你不能在流上使用二进制搜索算法,因为你不知道你搜索的内容是否已经播放过,或者稍后是否会播放

  2. # 2 楼答案

    您可以调用BaseStream.spliterator,并使用它来实现二进制搜索,就像您的代码是streams API的一部分一样,但由于非常明显的原因,这将是非常低效的