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

凡科 建设淘宝客网站网站认证方式

凡科 建设淘宝客网站,网站认证方式,做购物网站用什么应用,福田做商城网站建设哪家公司便宜点lambda javaJava 8的主题是lambdas。 我已经注意到#xff0c;对于许多Java程序员来说#xff0c;lambda都是非常难的材料。 因此#xff0c;让我们尝试对它们有一个基本的了解。 首先#xff0c;lambda到底是什么#xff1f; Lambda是一个匿名函数#xff0c;与常规函数… lambda java Java 8的主题是lambdas。 我已经注意到对于许多Java程序员来说lambda都是非常难的材料。 因此让我们尝试对它们有一个基本的了解。 首先lambda到底是什么 Lambda是一个匿名函数与常规函数不同它没有绑定到标识符即它没有名称。 这些函数可以作为参数传递给其他函数称为高阶函数。 假设我们的应用程序必须从系统的不同位置写入一堆文件。 我们不想每次都处理已检查的异常[请参阅“ 例外已检查和未检查”以获取有关已检查的异常的更多信息]。 因此我们决定编写一个低级的writeToFile函数该函数打开FileWriter并将其传递给可以安全地写入文件的函数。 使用此低级函数我们编写以下代码。 writeToFile(todo.txt, new FileWriteFunction() {Overridepublic void apply(Writer file) throws IOException {file.write(learn about lambdas\n);file.write(learn stream API\n);} }) 我们传递给writeToFile的对象是FileWriteFunction的匿名实现[是匿名的因为我们没有将其命名为类]。 它具有单个功能因此可以有效地传递匿名功能。 在Java的世界中这些有时称为回调 。 可能您之前至少使用过几次也许没有引起注意。 该匿名对象实际上是lambda。 但这显然不像传递函数。 语法非常笨拙。 这正是Java 8中的变化。 有了Java 8中对lambda的语法支持代码的读取就像我们传递函数一样。 使用Java 8 lambda我们将上述代码重写如下。 writeToFile(todo.txt, file - {file.write(learn about lambdas\n);file.write(learn stream API\n); }) 这样更好 它强调重要的代码并隐藏了大多数笨拙的部分。 通常lambda与闭包可互换使用即词汇功能。 虽然它们都是匿名函数但是闭包的定义是它是包含绑定变量的函数。 即闭包包括一个引用表该表包含对局部变量的引用。 例如如果我们接受要写入文件的参数data 则使用闭包。 void save(String data) {writeToFile(file.db, file - file.write(data) ); } 匿名内部类限制对最终变量的访问而闭包提供对任何变量的访问。 但是变量实际上是闭包的最终变量因此无法重新分配。 那lambdas的编译呢 Java 8是否仅使用一种方法就匿名内部类仅提供了一勺语法糖 不是不是 的确它允许对任何单方法匿名内部类使用lambda语法。 但是lambda不会编译为内部类。 相反编译器在定义的类中输出lambda$方法并使用invokedynamic调度该调用。 因此现在您知道了如何在Java 8中使用lambda。虽然lambda本身非常有用但在将它们应用于集合时更是如此。 新的Stream API通过为集合提供功能更强大的API来替代迭代器 java.util.stream.Stream 。 Stream上最值得注意的功能是 collect filter map和reduce 。 从一个简单的例子开始这里是如何对列表中的所有数字求和。 asList(1,2,3,4,5).stream().reduce(0, (acc, value) - acc value) // 15 通过从零开始将每个值加到累加器上可以减少序列。 为了进行比较传统上您会编写一个循环。 int acc 0; for (int n : asList(1,2,3,4,5))acc n; acc // 15 继续求和仅求奇数。 首先我们filter奇数然后reduce 。 asList(1,2,3,4,5).stream().filter(Predicates::odd).reduce(0, (acc, n) - acc n) // 9 filter的参数是对我使用的Predicates类中的静态odd函数的函数引用。 顾名思义这是一个布尔函数用于测试数字是否为奇数。 到目前为止一切都很好。 现在假设我们要将一厘米大小的列表转换为以英寸为单位的等效大小。 我们为此使用map 。 ListInch inches centimeters.stream().map(Centimeter::toInches).collect(Collectors.toList()) 通过将toInches函数应用到centimeters集合中的每个项目将centimeters映射为英寸。 从本质上讲 Stream是连续的。 它用于描述要应用于集合的操作。 但是要获得结果必须收集数据。 这就是collect功能的目的。 它将流的元素减少为可变容器例如列表。 使用Stream API和lambda可以大大简化用于集合的代码并使代码更具表现力。 与使用破坏性操作例如forEach 相比首选使用非破坏性操作例如map filter 使代码更易于推理。 而已 这些是您需要了解的Java 8中的lambda和闭包的基础知识。当然关于lambda的内容还有很多要写的但这是另一篇文章。 参考 Software Craft博客上的JCG合作伙伴 Bart Bakker 对Java lambda的介绍 。 翻译自: https://www.javacodegeeks.com/2013/10/introduction-to-java-lambdas.htmllambda java
http://www.yutouwan.com/news/230421/

相关文章:

  • 网站建设客源在哪里找创艺装饰公司
  • 深圳专业营销网站设计站酷网素材图库免费下载
  • 网站开发作用网站建设 摄影服务
  • 即墨医院网站制作公司乡下自家院子设计图片
  • 网站上有声的文章是怎么做的温州中豪网络科技有限公司
  • 东莞网站建设主要学什么php可以做移动端网站
  • 无锡惠山区建设局网站查pv uv的网站
  • 做网站的服务器还需要空间吗做网站属于什么专业
  • 小视频做网站怎么赚钱免费做头像网站
  • wdcp 网站打不开中国外贸论坛
  • 网上做公司网站怎么做旅游最适合的城市
  • 安徽网新科技网站建设介绍中国建设银行官网首页 网站首页
  • 公司做网站的原因市场调研报告模板
  • 物流怎么弄网站wordpress安装后输入帐号登不进去
  • 全国住房城乡建设厅网站上海小红书seo
  • 智能建站价格公众号开发者id在哪里查看
  • 网站开发考什么证wordpress tag name slug or id
  • 自己做个网站用什么软件好wordpress备份还原
  • 自己做的网站某个网页打开很慢秀米排版编辑器 wordpress
  • 金昌市网站建设单页网站上传教程视频
  • 东莞南城网站建设价格网站定制公司地址
  • 建立一个商城网站网页设计公司十强
  • 专业 网站设计石家庄是哪个省
  • 怎么做 废旧回收网站学校网站建设项目需求报告
  • 经营网站icp备案要求工业和信息网站备案管理系统
  • 如何做转发文章赚钱的网站做程序的软件
  • 怎么样在服务器上建设网站电子商城官网
  • 中苏园林建设集团网站手机网站和微网站
  • 域名注册好了 怎么做网站试玩网页游戏
  • 那个网站做拍手比较好网站建设需要资料