- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在回答我的问题时,这里建议用户 nullpointer - https://stackoverflow.com/a/53905940/10824969如何使用 IntStream.iterate
将 for 循环转换为流方式。
我有一个类似的 for 循环条件,我用它来迭代
void printMultiples(int number, int threshold) {
for (int i = number; ; i = i + threshold) {
if (i < threshold) {
break;
} else {
System.out.println(i);
}
}
}
尝试将其转换为
IntStream.iterate(number, i -> i + number).forEach(System.out::println);
^^
// Non-short-circuit operation consumes the infinite stream
上面的代码中有IDE的警告。我还尝试使用 IntStream.range
检查倍数,下面改为打印所有数字
IntStream.range(number, threshold).forEach(System.out::println);
最佳答案
您可以过滤
您的流作为
IntStream.range(number, threshold)
.filter(i -> i % number == 0) // only those divisible by number
.forEach(System.out::println);
或者如果 Java-9 或更高版本是一个选项,您可以使用
IntStream.iterate(number, i -> i < threshold, i -> i + number)
.forEach(System.out::println);
或者更恰本地说,因为它听起来像一个 while 循环,使用 Intstream.takeWhile
作为:
IntStream.iterate(number, i -> i + number)
.takeWhile(i -> i < threshold)
.forEach(System.out::println);
关于java - IntStream 代替 for 无条件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966452/
我想转换 List到IntStream 。假设我的列表类似于 ["abc", "de", "fghi"] 。然后IntStream我想要的就像 1,1,1,2,2,3,3,3,3 。 (数字 i 在
我使用 Java 8 流代替许多旧式 for 循环来迭代一堆结果并生成摘要统计信息。例如: int messages = IntStream.rangeClosed(0, 7).map(ids::ge
IntStream.range(x,y) 会从 x(inclusive) 和 y(独家)。IntStream.rangeClosed(x,y) 会从 x(inclusive) 和 y(inclusiv
是否可以使用 IntStream 但使用索引遍历 int 数组? 尝试做这样的事情: ByteBuf buf = ...; int[] anArray = ...; IntStream.of(anAr
我已经知道只有 IntStream和 LongStream .我如何制作 IntStream从字节数组? 目前我打算这样做。 static int[] bytesToInts(final byte[]
public static void randomSquare() { int[] array = new Random().ints(10).toArray(); for (int
我有一个接受 ArrayList 的方法的int[]数组。如果我用 ArrayList 调用该方法一个int[]数组,它应该简单地返回 int[] 数组中两个值之间的差。使用流媒体,我已经 stati
我有一小段代码可以计算给定数组中正值、负值和零值的数量。我可以使用 Java 7 轻松完成此操作,方法是迭代数组并计算正值、负值和零值的数量。但是对于Java 8流,在map函数中编写条件是否正确?目
我正在尝试创建一个无限的素数 IntStream,并且它必须很快 - 在几秒钟内生成大约一百万个素数。所以我尝试创建使用过滤器调用生成的流IntStream本身: IntStream primeStr
如何使用 IntStream 在步骤(3)中迭代一系列数字 (0-100)? 我尝试迭代,但这永远不会停止执行。 IntStream.iterate(0, n -> n + 3).filter(x -
Java Instream 我需要二维数组中元素的索引,该数组具有空值。我可以使用对于我在下面做的一维数组,它起作用了: IntStream.range(0, myArr.length)
当你有 Stream.of(1 ,10).reduce(0,(v1, v2) -> v1 + v2); 对比 IntStream.of(1 ,10).reduce(0,(v1, v2) -> v1 +
我写了一些代码来创建一个 List来自Stream>像这样: List abc = stream.flatMap(e -> e.stream()). collect(Collectors.to
使用以下代码,我遇到了以下编译错误。我还尝试使用 input 作为 Integer 列表而不是 int[] 并且它工作正常。如果我使用 boxed(),它也能正常工作。 我的问题真的是,如果是 Int
Java 8 有一个新接口(interface),名为 IntStream。我使用了它的of()静态方法,遇到了一个奇怪的错误: This static method of interface Int
我想创建一个 List数值为 72-129 和 132-200。我考虑过使用 IntStream并将值映射到字符串并收集到列表。我使用了这段代码: List strings72to200 = Stre
如何使用 IntStream 在步骤 (3) 中遍历数字范围 (0-100)? 我试过 iterate,但这永远不会停止执行。 IntStream.iterate(0, n -> n + 3).fil
例子; IntStream a = create(3, 1); // => [0,0,1] IntStream b = create(5, 2); // => [0,0,0,0,2] 第一个流给出
这个问题在这里已经有了答案: Return from lambda forEach() in java (5 个答案) 关闭 5 年前。 下面是我的普通 for 循环,我想重构相同的代码以使用 ja
这个问题在这里已经有了答案: Adding two Java 8 streams, or an extra element to a stream (8 个答案) 关闭 5 年前。 我正在尝试获取某
我是一名优秀的程序员,十分优秀!