【问题标题】:How to perform Lambda expressions and forEach on normal arrays?如何在普通数组上执行 Lambda 表达式和 forEach?
【发布时间】:2016-06-12 00:42:39
【问题描述】:

我通常打印我的 ArrayLists,例如

colors.forEach(color -> System.out.printf("color: %s ", color));

但我无法将其应用于普通数组 (String[] colors)。

如何将此表达式应用于普通数组?

【问题讨论】:

  • 你试过这个吗:Stream.of(colors).forEach(System.out::println)。如果您使用的是 printf,则需要将其命名为 Stream.of(colors).forEach(color -> System.out.printf("color: %s", color)
  • 为什么要为此使用流?它实际上比for 循环更详细for (String color : colors) System.out.printf("color: %s ", color);
  • 这是一个样例。在我应用它的地方,它不那么冗长。

标签: java arrays lambda


【解决方案1】:

Arrays 类包含用于操作数组的各种方法,包括静态stream() 方法,该方法返回以指定数组为源的顺序Stream。对于您的示例,您可以使用以下代码:

Arrays.stream(colors).forEach(color -> System.out.printf("color: %s ", color));

【讨论】:

    【解决方案2】:

    基本上,您需要一种方法来对数组执行流操作。就像将数组转换为流一样简单:

        Arrrays.stream(colors).forEach(color -> System.out.printf("color: %s ", color));
    

    有关更多信息,请参阅Java 8 Stream and operation on arrays

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      相关资源
      最近更新 更多