如何使用IntStream在step(3)中迭代数字范围(0-100)?
我试过了iterate
,但这从未停止执行。
IntStream.iterate(0, n -> n + 3).filter(x -> x > 0 && x < 100).forEach(System.out::println)
实际上range
,这是理想的。
IntStream.range(0, 100).filter(x -> x % 3 == 0); //107,566 ns/op [Average]
编辑:Holgers的解决方案是性能最快的解决方案。
由于以下几行代码
IntStream.range(0, 100).filter(x -> x % 3 == 0).forEach((x) -> x = x + 2);
IntStream.range(0, 100 / 3).map(x -> x * 3).forEach((x) -> x = x + 2);
int limit = ( 100 / 3 ) + 1;
IntStream.iterate(0, n -> n + 3).limit(limit).forEach((x) -> x = x + 2);
显示这些基准结果
Benchmark Mode Cnt Score Error Units
Benchmark.intStreamTest avgt 5 485,473 ± 58,402 ns/op
Benchmark.intStreamTest2 avgt 5 202,135 ± 7,237 ns/op
Benchmark.intStreamTest3 avgt 5 280,307 ± 41,772 ns/op
我当时正在读一本名为《现代Java在行动》的书,其中一部分代码我无法理解。 作者表示,代码不会终止。原因是无法在过滤器中知道数字是否继续增加,因此它会无限地继续过滤它们! 我不明白原因。有人能解释一下为什么吗。
原文: http://exploringjs.com/impatient-js/ch_sync-iteration.html 27.1。什么是同步迭代? 同步迭代是一个 _ 协议 _(接口加上使用它们的规则),它连接 JavaScript 中的两组实体: **数据来源:**一方面,数据有各种形状和大小。在 JavaScript 的标准库中,您有线性数据结构 Array,有序集合 Set(元素按添加
异步迭代允许我们对按需通过异步请求而得到的数据进行迭代。例如,我们通过网络分段(chunk-by-chunk)下载数据时。异步生成器(generator)使这一步骤更加方便。 首先,让我们来看一个简单的示例以掌握语法,然后再看一个实际用例。 回顾可迭代对象 让我们回顾一下可迭代对象的相关内容。 假设我们有一个对象,例如下面的 range: let range = { from: 1, to
JavaScript中有没有已知的技巧来区分和之间的区别,而不触发迭代? 我正在尝试实现以下类型检查器: 我知道调用会告诉我们这一点,但在无法触发迭代时我需要它。 此外,即使我在TypeScript中给出了示例,我也需要在运行时严格检查它。
我在考虑制作一个动画,例如,一个圆圈从屏幕/网站的顶部下降到底部,然后开始无休止地旋转。我有这个想法,但我不知道如何用CSS来描述它。 这就是我到目前为止所做的事情,我被卡住了: 我不知道如何在“100%”步骤中进行迭代。请给我一些建议
问题内容: 我想对不带数字键()的mongoDB集合执行迭代。集合只有一个随机字符串作为_id,并且集合的大小很大,因此使用来将整个文档加载到RAM 上不是可行的选择。另外,我想对每个元素执行异步任务。的使用或者,是因为任务的异步性质的限制。我尝试使用上述方法运行任务,但它确实与异步任务冲突,返回了未完成的承诺而不是正确的结果。 例 我怎样才能仅使用mongoDB集合进行迭代? 问题答案: 该方法