当前位置: 首页 > news >正文

贵阳市网站建设_网站建设公司_RESTful_seo优化

网站建设旗舰品牌,软件开发一个月多少工资,商丘百度推广,chmod wordpressJava 8彻底改变了Java。 它很可能是过去10年中最重要的Java版本。 有很多新功能#xff0c;包括默认方法#xff0c;方法和构造函数引用以及lambda#xff0c; 仅举几例 。 更有趣的功能之一是新的java.util.stream API#xff0c;正如Javadoc所述#xff0c;该API支持 … Java 8彻底改变了Java。 它很可能是过去10年中最重要的Java版本。 有很多新功能包括默认方法方法和构造函数引用以及lambda 仅举几例 。 更有趣的功能之一是新的java.util.stream API正如Javadoc所述该API支持 元素流上的函数式操作例如集合上的map-reduce转换 将此新API与lambda表达式结合使用您将获得简洁但功能强大的语法该语法可通过应用投影显着简化代码。 以表面上简单的过滤集合为例。 在这种情况下将创建一个简单的Message类型Collection 如下所示 创建消息集合 ListMessage messages new ArrayList(); messages.add(new Message(aglover, foo, 56854)); messages.add(new Message(aglover, foo, 85)); messages.add(new Message(aglover, bar, 9999)); messages.add(new Message(rsmith, foo, 4564)); 通过这个集合我想过滤出Message 其delay 第3个构造函数参数大于3,000秒。 在Java 8之前 您可以像这样手动阻塞这种逻辑 过滤旧派风格 for (Message message : messages) {if (message.delay 3000) {System.out.println(message);} } 但是在Java 8中此工作变得更加简洁。 集合现在支持stream方法该方法将基础数据结构转换为可迭代的对象流从而允许使用lambda表达式的新型功能操作。 这些操作大多数也可以链接在一起。 这些可链接的方法称为“ 中间” 不能链接的方法称为“ 终端” 。 简而言之lambda表达式与匿名类非常相似只是语法更少 。 例如如果您在Javadocs中查找Stream的filter方法的参数则会看到它采用了Predicate类型。 但是您不必像在使用匿名类的Java 8之前那样实现该接口。 因此用于过滤所有大于3000的delay值的Predicate lambda表达式为 Lambda表达式 x - x.delay 3000 其中 x是为流中的每个值传递的参数 -右边的所有内容都是要求值的表达式。 将所有这些放到Java 8中可以得出 流lambdas messages.stream().filter(m - m.delay 3000).forEach(item - System.out.println(item)); 有趣的是由于Java 8的其他一些新功能 forEach的lambda可以进一步简化为 流lambda更短 messages.stream().filter(m - m.delay 3000).forEach(System.out::println); 因为forEach lambda的参数仅由println 所以Java 8现在允许您完全删除该参数。 之前我提到过流允许您链接lambda-在上述情况下 filter方法是一种中间方法而forEach是一种终端方法。 功能程序员可以立即识别的其他中间方法是 map flatMap和reduce 仅举几例。 详细地说我想查找所有延迟超过3,000秒的Message 并总结总延迟时间。 没有功能魔术我可以写 普通的Java long totalWaitTime 0; for (Message message : messages) {if (message.delay 3000) {totalWaitTime message.delay;} } 不过使用Java 8和一些function-foo您可以实现更优雅的代码构造如下所示 Java 8优雅 long totWaitTime messages.stream().filter(m - m.delay 3000).mapToLong(m - m.delay).sum(); 请注意我如何链接filter和mapToLong方法以及终端sum 。 顺便说一句 sum方法需要一种特定的地图样式方法该方法可产生基本类型的集合例如mapToLong mapToInt等。 功能样式编程作为一种核心语言功能是一种非常强大的结构。 而且尽管许多技术在诸如Guava之类的各种第三方库中以及诸如Scala和Groovy之类的JVM语言中已经可用但拥有这些语言核心的这些功能肯定会吸引更多的开发人员并对开发前景产生最大的影响。 毫无疑问Java 8极大地改变了Java语言 。 翻译自: https://www.javacodegeeks.com/2014/03/java-8s-functional-fomentation.html
http://www.lebaoying.cn/news/20712.html

相关文章:

  • 长沙大型网站设计公司.vip域名做网站
  • 产品网页的制作宁波seo搜索优化费用
  • 响应式大学网站大型网络游戏排行榜2021前十名
  • 建设文明网站包括哪些网站有中文域名
  • ps做网站效果图均安公司网站建设
  • 常用的设计师网站wordpress zh cn.po
  • wordpress 目录权限设置上海seo优化公司 kinglink
  • 开发一个网站的流程东莞做好网络推广
  • 佛山美容院网站建设网站建设好做吗
  • 织梦 两个网站网站动态背景欣赏
  • 做网站用什么电脑配置遨翔网站建设
  • 淘宝优惠券网站建设总代利趣网站开发商
  • 凡科网让经营更简单湖南企业竞价优化首选
  • 营销型网站价格网站的上一页怎么做的
  • 保定网站建设推广公司怎么样泉州网站制作哪个好薇
  • 重庆网络推广网站推广网站的域名分为哪些
  • 动态手机网站怎么做的太原网站建设培训学校
  • 六种常见的网站类型建设网站赚钱的方法
  • 二级网站的建设北京网站开发建设公司
  • 不备案 国内网站吗建立网站需要服务器吗
  • 有没有悬赏做ppt的网站微信如何添加小程序
  • 辽阳建设网站找哪家自建网站服务器
  • 花桥做网站甘肃兰州气候特点
  • 长春建设厅网站首页wordpress 首页添加
  • 花都企业网站建设wordpress创建配置文件 没反应
  • 哪个网站可以做微信引导图2022年热点新闻事件
  • 一个网站怎么做软件下载厦门规划建设网站
  • 怎么修改网站的关键词什么软件可以攻击网站
  • 小米官方网站开发版在哪里柳州网站建设公
  • 建设银行个人网上银行app网站seo诊断优化分析该怎么做