当前位置: 首页 > 面试题库 >

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

麻桐
2023-03-14
问题内容

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

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);


 类似资料:
  • 使纯虚函数不例外是好的做法还是坏做法?我一直认为我们不应该对其实现类施加额外的限制,它们的实现不应该被抛出,因为放置它可能会导致实现中的修改和不必要的 try catch 块以防止异常逃逸。我认为实现应该决定函数是否可以标记为 NO,除了异常规范不应该决定实现吗? 如果我说错了,有人能纠正我吗?

  • 如果PDF已经以结构化的方式包含要提取的数据,则会更好。类似于HTML的条纹化版本。特别是对于表,有大量的信息丢失。例如,当您将Word文档转换为PDF,然后转换为文本时。 PDF标准提供了一种存储表结构的方法吗?如果没有,是否可以扩展PDF标准?这个过程是什么?

  • 如果“顺序”由返回节点中的一个或多个节点/属性定义,Saxon是否有方法按排序顺序返回节点? 换句话说,XPath查询可以是: 谢谢戴夫

  • 在调试的目的,我写了一个新的代码,看看异步函数是如何工作的,所以我有下一个情况 我有3个函数log1(),log2(),main(),我希望: 当我调用main()时,它应该调用log1(),直到它完成所有语句,然后它应该调用log2() 所以我希望它能输出 1个 2. 但它确实有产出 2. 1个 我要注意的是,我不能编辑slowFunction,您应该将它视为需要未知时间执行的函数,因此我需要等

  • 我正在使用Jest测试一些实用函数。 my_util.js: 另一个例子。js: 测试调用了的最简单方法是什么?这是我当前的单元测试,它失败了。有没有一种方法可以测试函数是否以其名称调用? 结果:

  • 我想用 使用请求构造函数参数的异常类型。类似这样的事情: 有没有一种方法可以创建一个供应商来传递我的参数值?