gpt4 book ai didi

java - 读取 scala 流,直到标准出现并消失

转载 作者:行者123 更新时间:2023-12-01 09:47:34 24 4
gpt4 key购买 nike

我正在读取一个流,在其中查找特定时间间隔内的 json 值。我想缓存在时间间隔内的值之前和期间读取的任何内容。一旦流读取了时间间隔内的所有值(假设按时间顺序),我应该停止读取。

这里的代码缓存可变列表中的所有值,然后过滤为日期范围内的 json。但一旦过滤器完成,它不会停止读取,它会缓存流中的所有内容。

val cache: MutableList[JsValue] = MutableList.empty

pg.pins.flatten
.map( record => {cache += record; record})
.filter( js => ( js \ "created_at").as[Date].after(start) && ( js \ "created_at").as[Date].before(end) )

感谢任何帮助。

最佳答案

您不需要为此使用可变列表(避免使用可变结构,除非有真正的原因必须这样做)。假设 pg.pins 是一个 Stream 并且数据按日期排序(您的问题似乎暗示),这样的事情应该满足您的要求:

 val (after, before) = pg.pins.flatten
.takeWhile { js => (js \ "createdAt").as[Date].before(end) }
.partition { js => (js \ "createdAt").as[Date].after(start) }

关于java - 读取 scala 流,直到标准出现并消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com