gpt4 book ai didi

java - Java 8 是否提供了一种重复值或函数的好方法?

转载 作者:IT老高 更新时间:2023-10-28 11:23:08 35 4
gpt4 key购买 nike

在许多其他语言中,例如。 Haskell,很容易多次重复一个值或函数,例如。获取值 1 的 8 个副本的列表:

take 8 (repeat 1)

但是我在Java 8中还没有发现这个。Java 8的JDK中有这样的功能吗?

或者其他等价于范围的东西

[1..8]

这似乎是 Java 中冗长语句的明显替代品

for (int i = 1; i <= 8; i++) {
System.out.println(i);
}

拥有类似的东西

Range.from(1, 8).forEach(i -> System.out.println(i))

虽然这个特定的示例实际上看起来并不简洁...但希望它更具可读性。

最佳答案

对于这个具体的例子,你可以这样做:

IntStream.rangeClosed(1, 8)
.forEach(System.out::println);

如果你需要一个不同于1的步骤,你可以使用一个映射函数,例如对于一个步骤2:

IntStream.rangeClosed(1, 8)
.map(i -> 2 * i - 1)
.forEach(System.out::println);

或者构建自定义迭代并限制迭代的大小:

IntStream.iterate(1, i -> i + 2)
.limit(8)
.forEach(System.out::println);

关于java - Java 8 是否提供了一种重复值或函数的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18532488/

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