广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    java lambda表达式如何分组

    来源:网络收集  点击:  时间:2024-03-02
    【导读】:
    Java8中Lambda表达式的几个例子例1 用Lambda表达式实现Runnable接口方法/步骤1/6分步阅读

    输出:too much code, for too little to doLambda expression rocks !!这个例子使我们学到了java8中Lambda表达式的书写方式:(参数) - 表达式(参数) - 语句(参数) - { 语句 }例如,如果你的方法只是在控制台打印信息,则可以这么写:

    顺带提一句,一般来说在Lambda表达式中要尽量保持变量的简洁性。这会使你的代码简短而能保持在一行之内。所以像上面的代码可以选择变量名类似a,b或者x,y之类的,比起even和odd来会更好。

    2/6

    例2 用Lambda表达式写事件监听程序要是你用过Swing API,那就少不了事件监听代码,这是使用匿名类的经典例子。现在我们可以用Lambda表达式来抒写更好的事件处理代码。

    3/6

    例3 用Lambda表达式进行List迭代

    // 用java8的方法引用更好,方法引用由::(双冒号)操作符来完成,看起来像c++中的作用域操作符

    输出:LambdasDefault MethodStream APIDate and Time API

    4/6

    例4 使用Lambda表达式和函数式接口Predicate除了提供函数式编程语言级别的支持外,java8同时也新增了一个新的包java.util.function。其中包含了许多类来支持java函数式编程。其中之一是Predicate接口,使用这个接口和lamb表达式就可以以更少的代码为API方法添加更多的动态行为。以下是Predicate的使用范例,展示了过滤集合数据的许多共性。

    输出:Languages which starts with J :JavaLanguages which ends with aJavaScalaPrint all languages :JavaScalaC++HaskellLispPrint no language :Print language whose length greater than 4:ScalaHaskell

    5/6

    例5: Lambda表达式结合Predicate就像上个例子所说,Predicate允许组合两个以上的条件,它提供了类似于逻辑与和或的操作and(),or()和xor(),这些方法可以用来组合传递到filter方法中的多个条件。例如为了获取所有以J开头并有四个字符长度的语言,可以定义两个单独的Predicate实例覆盖每个条件然后用and方法将他们组合在一起。看例子:

    6/6

    例6 Map和Reduce的例子6.1 Map在这个例子中,我们要将costBeforeTax的每个元素以加上他们的增值税。传递一个Lambda表达式给map方法使之应用于每个元素,之后在用forEach打印结果。

    输出112.0224.0336.0448.0560.0112.0224.0336.0448.0560.06.2 Reduce还有另外一个函数reduce可以将所有值转换为一个值。map跟reduce操作是函数式编程的核心,reduce也被称作折叠操作。reduce并不是一种新的操作,在SQL中我们用的一些聚集函数比如sum,avg,count等他们实际上也是reduce操作,因为他们也是将多个值进行操作然后返回一个值。Stream API定义了reduce函数,可以接受一个Lambda表达式然后组合所有值。Stream类中像IntStream都有内置的方法像average(), count(), sum(), mapToLong(), mapToDouble()等转换方法。我们可以用内置的方法也可以自定义。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_221303.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 03:06:50  耗时:0.021
    0.021s