【问题标题】:Java 8: How to go through List with Lambda ExpressionJava 8:如何使用 Lambda 表达式遍历列表
【发布时间】:2015-07-29 19:18:59
【问题描述】:

在 Java 7 之前(包括 Java 7),通常使用以下代码遍历列表:

for (String s : MapperContent.ZGONC) {
    mapper.mapZgonc(s);
}

从 Java 8 开始,可以使用 Lambda 表达式。我的 IDE NetBeans 当然作为提示告诉我使用“函数式操作”。

如何使用“新编码风格”浏览该列表?

【问题讨论】:

  • 这取决于您希望如何处理您的列表。
  • yourList.forEach(element -> System.out.println(element));
  • @rzysia 或更简单:yourList.forEach(System.out::println);
  • 定义“通过”!如果您的意思是为每个元素执行一些代码块,没有副作用,那么 .forEach() 就是您想要的,正如发布的答案所示。就目前而言,您的真正意思还不清楚。

标签: java lambda


【解决方案1】:

试试这个:

MapperContent.ZGONC.forEach(mapper::mapZgonc);

【讨论】:

  • 这非常完美。您是否有任何好的参考或链接可以使用 lamda 表达式进入该编码风格?
  • @max.mustermann1 这不是编码风格的问题根本;这是一个理解流操作中使用的不同接口的问题,以及 lambda 可以作为方法引用的事实。首先,请查看 .forEach() 接受什么作为参数。然后进一步调查。
  • 通过这个链接找到了一个很好的解释:thediscoblog.com/blog/2014/03/25/…
【解决方案2】:

如果你只想根据你的列表值执行一些操作,你可以像下面这样:

Stream.of(MapperContent.ZGONC).forEach(el -> {
    mapper.mapZgonc(el);
});

Stream API 还有其他有用的功能,如 map、reduce、filter、collect。

【讨论】:

    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多