汉兰达好还是crv好:将流分配给变量:好还是不好(postls)

关于汉兰达好还是crv好的问题,在postls中经常遇到, 如果我将流分配给一个变量,例如

如果我将流分配给一个变量,例如

final Stream<String> docs = REST_CLIENT.postLS(Rest.appendSegmentToPath(bucketUrl, "_bulk_get"),

这会是个坏主意吗?因为流需要将数据存储在内存中-就像 Collection 一样。但与集合不同,流没有指定如何存储数据-作为数组、树或其他

5

因此,在您的代码中,Stream<String>String数据的来源,当您执行流操作并具有终端操作时,该流管道将被评估并被称为消耗,直到那时没有内存用于存储来自流源的数据。

这是根据Java docs

流是惰性的;只有在启动终端操作时才执行对源数据的计算,并且仅根据需要使用源元素。

相反,流不提供直接访问或操作其元素的方法,而是以声明方式描述其源和将在该源上聚合执行的计算操作。

但是一旦你在 Stream 上使用了一个终端操作,Stream 就会被消耗并且不能再次使用。

例如,让我们得到一个Stream<String>并将其引用保存在一个变量中:

Stream<String> stream  = Stream.of("foo", "bar");
stream.forEach(System.out::println); //invoke terminal operation
stream.forEach(System.out::println); // stream is already consumed

当您尝试再次调用终端操作时,您会得到一个java.lang.IllegalStateException: stream has already been operated upon or closed

1
In here

您不能一次又一次地处理流,因为流应该只操作一次(调用中间或终端流操作)

final Stream<String> docs = REST_CLIENT.postLS(Rest.appendSegmentToPath(bucketUrl, "_bulk_get"), 
In here

您可以使用供应商一次又一次地使用流

Supplier 是 java.util.function 包中在 Java8 中引入的内置功能接口。供应商可以在没有输入但期望输出的所有上下文中使用。由于 Supplier 是功能接口

Supplier<Stream<String>> docs =  REST_CLIENT.postLS(Rest.appendSegmentToPath(bucketUrl, "_bulk_get"), 
docs.get()// you can perform operation after calling get().map().filter()

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(952)
Com本质论:实用排队论(queuing models are useful for)
上一篇
Centos配置防火墙:Juniper SRX防火墙路由配置
下一篇

相关推荐

  • postman怎么设置cookie:如何在Postman中设置Cookie

    Postman可以通过在Headers标签中添加Cookie来设置Cookie。在Postman中打开要设置Cookie的请求,点击Headers标签,在Key一栏输入“Cookie”,在Value一栏输入Cookie值,如下图所示:…

    2023-06-15 12:53:32
    0 41 94
  • postman设置cookie: name=John; age=24```

    在Postman的Headers标签页中,添加一行:Key: Cookie…

    2023-01-24 14:14:10
    0 54 46
  • curl发送post最佳实践指南

    示例示例curl 是一个命令行工具,用于发送HTTP请求。它可以用来发送GET、POST、PUT和DELETE等请求。要使用curl发送POST请求,需要使用-X或--request选项,并将其设置为POST。…

    2023-02-18 08:04:09
    0 70 11
  • postman测试webservice:从Postman到实现

    Postman 是一个用于测试 Web 服务的工具,它可以帮助您构建、测试和管理 Web 服务。它可以用来构建和测试 RESTful API,SOAP 和 GraphQL 等服务。下面是一个使用 Postman 测试 Web 服务的示例代码:…

    2023-06-28 06:49:58
    0 32 27
  • postek c168/200s驱动:深入了解Postek C168/200s打印机驱动

    Postek C168/200s驱动是一种支持Postek C168/200s打印机的驱动程序,它可以让用户在Windows环境下轻松使用打印机。…

    2023-01-15 09:42:12
    0 35 66
  • Canary:Postman Canary8.0.0-canary01未保存环境变量

    今天,我将我的邮递员升级到最新版本,从 PostmanCanary 7.37.0-canary01 升级到 8.0.0-canary01。…

    2022-11-30 14:33:45
    0 40 59
  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 66 46
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 55 95

发表评论

登录 后才能评论

评论列表(58条)