保定企业制作网站电子宣传册如何制作

web/2025/10/4 10:49:31/文章来源:
保定企业制作网站,电子宣传册如何制作,2018年公司网站建设费分录,网站建设lambda表达式java在本文中#xff0c;我们提供了全面的Lambda Expressions Java教程。 1. Lambda Expressions Java教程–简介 Lambda表达式被认为是Java 8中引入的最好的功能之一。Lambda表达式被认为是Java进入函数式编程世界的第一步 。 可以将其视为无需类即可创建的函数… lambda表达式java 在本文中我们提供了全面的Lambda Expressions Java教程。 1. Lambda Expressions Java教程–简介 Lambda表达式被认为是Java 8中引入的最好的功能之一。Lambda表达式被认为是Java进入函数式编程世界的第一步 。 可以将其视为无需类即可创建的函数。 它也可以像参数一样传递并且可以在需要时和根据需要执行。 Java Lambda表达式是匿名函数的简洁表示可以将其传递。 具有单个功能的匿名类使用额外的语法进行了笨拙的演示。 这些表述旨在消除这种混乱。 如前所述Java Lambda表达式是无名函数 可以作为常量值进行传递。 这意味着它们可以出现在可能存在任何其他常数值的任何位置但是通常作为参数写入某些其他函数。 考虑一个典型的例子我们可以将比较函数传递给泛型排序函数而不是麻烦地定义一个整个过程并引起词法不连续和名称空间污染来描述这种比较我们只需传递一个lambda表达式描述了比较。 让我们看一下Lambda表达式的一些属性 匿名它仍然可以称为匿名因为它没有明确的名称。 简洁正如前面提到的匿名类的情况与匿名类相比我们用Lambdas编写的代码要少得多。 函数Lambda更像是函数而不是方法。 这是因为方法属于类而Lambda不属于。 但是就像方法一样Lambda接受参数列表具有主体并且还可以引发异常。 可以传递Lambda可以传递给其他函数就像普通参数一样。 为了消除可能由于我们上面提到的观点而引起的任何误解lambda不会添加引入之前的更多功能。 它只是改善了我们编写代码的方式并减少了很多样板代码。 该样板代码甚至与我们用来通过基础操作系统的多核性质进行代码识别的系统级编程有关。 让我们看看这种简单的语法糖如何使我们的工作在并行性代码简洁性和紧凑性方面变得更加轻松。 2.编写Lambda表达式 在本节中我们将看到Java Lambda表达式如何减少执行一些简单操作所需编写的代码行。 例如我们将比较代码行数以构成比较器功能。 为了建立比较我们将在这里创建一个简单的POJO类一个Student类其中包含Student ID作为Long和name作为String参数 学生.java public class Student {   private Long id; private String name; // standard setters and getters } 比较我们在应用程序中定义的POJO对象是一种非常通用的编程实践。 如果要比较两个Student类对象则可以使Comparator像这样 匿名类的比较器 ComparatorStudent byId new ComparatorStudent() { Override public int compare(Student s1, Student s2) { return s1.getId().compareTo(s2.getId()); } }; 这是一个作为Anonymous类的简单Comparator实现但我们发现使用Lambda进行处理时相同的实现非常精确和干净。 让我们在这里看到使用Lambda表达式完成的相同任务 pom.xml ComparatorStudent byId (s1, s2) - s1.getId().compareTo(s2.getId()); Lambda表达式上方也可以称为块Lambda表达式因为它由符号右侧的单个代码块组成。 它变得更加简洁小巧这听起来很神奇请参见以下代码片段 简洁的Lambda实现 ComparatorStudent byId Comparator.comparing(Student::getId); 这是建立比较器的好方法而且也很简单。 对于上面我们进行的Block Lambda表达式让我们对其进行分解以更好地理解 Lambda表达 Lambda Expression以在此情况下传递给函数Comparator的参数列表开头 箭头符号将Lambda Expression参数与Lambda主体分开 主体清楚地将两个学生对象及其id进行比较该表达式定义了Lambda返回值 要注意的是已编译的代码即匿名类版本和Lambda表达式版本的字节码将完全相同因为Lambda表达式只是使代码清晰的语法。 尽管使用Lambda表达式有时可能会使代码的可读性降低。 3. Lambda表达式与匿名类 我们使用Lambda表达式编写的代码也可以使用Anonymous类编写其实现方式与Lambda Expressions完全相同。 区别在于Lambda代码的简洁性。 作为比较示例让我们构造一个类和一个将Runnable作为输入的方法 可运行类 public class RunnableInstance { public static void doSomething(Runnable runnable){ runnable.run(); } } 当我们使用Anonymous类制作Runnable时其外观如下所示 可通过匿名类运行 Runnable runnable new Runnable() { Override public void run() { System.out.print( Anonymous class implementation. ); } }; doSomething(runnable); 让我们尝试将上面的代码转换为Lambda表达式看看如何得到干净的东西 可与Lambda一起运行 Runnable runnable () - System.out.print( Lambda Expression. ); doSomething(runnable); 如果我们不想多次使用可运行的实现我们甚至可以避免进行引用 简洁的Lambda Runnable doSomething(() - System.out.print( Lambda Expression. )); 4.使用Lambda表达式进行并行编程 每当我们谈论线程时我们大多数人都会退后一步考虑是否真的需要在我们的应用程序中实现线程以支持并行性因为并行性本质上微不足道且难以管理。 当我们有一组项目时我们实现了一个lambda如 并行编程 collection.map { // my lambda } 在这里集合本身能够与提供的Lambda实现并行性而不必自己执行线程。 这意味着在多核环境中Lambda可以在集合上进行流式传输时利用多个核。 就像我们考虑一个简单的例子一样 Lambda与并行流 ListString names students.stream() .map(s - s.getName().toUpperCase()) .collect(Collectors.toList()); map函数可以在多核环境中并行运行以一次处理多个对象而无需我们做任何事情。 为此仅需要执行此程序的操作系统必须是多核。 一旦满足此条件我们可以确保可以在给定语句中并行化的任何操作都将自动完成。 5.集合和流 Collections框架是Java中最常用的Framework API之一。 集合允许我们将相似的对象收集到可以针对特定目的进行优化的数据结构中。 前面的所有示例都需要对象集合因此假设我们有一个Student类型的对象集合就像我们之前定义的那样 学生集合 List students getStudentObjectCollection(); 我们从添加到Collection接口的新方法stream()开始。 由于所有集合都“扩展”集合因此所有Java集合都继承了此方法 学生流 List students getStudentObjectCollection(); Stream stream students.stream(); // a stream of student objects 尽管看起来很像但Stream接口不是另一种常规的集合类型。 我们可以将Stream视为“数据流”抽象它使我们能够转换或操纵其包含的数据。 与我们在Java中研究过的其他集合不同Stream不允许我们直接访问其包含的元素。 尽管如果您想访问元素我们总是可以将流转换为Java中的集合之一并实现我们的目的。 出于演示目的我们将看到如果我们必须计算我们的students集合中有多少个奇数ID对象我们的代码将是什么样子。 首先让我们看看如何在不使用流的情况下完成此操作 计数奇数 long count 0 ; List students getStudentObjectCollection(); for (Student s : students) { if (s.getId() % 2 1 ) { count; } } 使用for循环我们创建了一个计数器每次在学生列表中遇到奇数ID时该计数器都会递增。 我们已经为这种非常简单的任务写了数百遍这种类型的代码它跨越多行。 我们也可以在一行中使用Stream编写完全相同的代码 使用流 List students getStudentObjectCollection(); long count students.stream().filter(student - student.getId() % 2 1 ).count(); 这看起来比以前的for循环方法干净整洁吗 一切都始于调用stream()方法该方法将给定的集合转换为Stream所有其他调用都链接在一起因为Stream接口中的大多数方法都是在考虑到Builder模式的情况下设计的 。 对于那些不习惯使用这种方法进行链接的用户可能更容易这样可视化 可视化流 List students getStudentObjectCollection(); Stream stream students.stream(); stream stream.filter(student - student.getId() % 2 1 ); long count stream.count(); 让我们将注意力集中在我们使用的Stream的两种方法中 filter()和count() 。 filter()方法采用要过滤集合的条件该条件由一个lambda表达式表示该表达式带有一个参数并返回一个布尔值 Lambda条件 student - student.getId() % 2 1 并非偶然用于表示该表达式的功能接口filter()方法的参数filter()是谓词接口。 它只有一个抽象方法boolean test(T t) 功能介面 FunctionalInterface public interface Predicate { boolean test(T t); // non-abstract methods here } 参数化类型T表示流中元素的类型即Student对象。 过滤之后剩下的就是调用count()方法。 没什么大不了的它只是计算过滤发生后我们流中还剩下多少个对象除了过滤之外我们还可以有更多的东西。 count()方法被视为“终端操作”在调用该方法后该流被称为“已消耗”且无法再使用。 6. Lambda表达式的缺点 尽管带有Lambda Expressions的代码看起来非常简洁但是Lambdas也有一些缺点。 让我们在这里研究其中的一些 无法处理检查的异常 任何引发检查的异常的代码都应包装在try-catch语句中。 但是即使我们这样做也不总是总是清楚抛出的异常发生了什么。 性能问题 由于JIT不能始终将forEach() lambda优化到与普通循环相同的程度因此Lambda可以在很小程度上影响性能。 调试挑战 显然使用Lambdas时代码并不总是那么简洁。 这使得堆栈跟踪代码中出现的异常和可读性变得有些困难。 尽管Lambda有一些缺点但是当您编写简洁的代码时它们仍然是不错的伴侣。 7.结论 Java Lambda表达式在所有LISPPerlPython以及最新版本的C Objective CC和Java 8中都出现具有不同的语法但值得注意的是即使它可以处理传递的函数或一些借口作为参数。 它们是具有特定语义的语法元素并且这些语义对运行时的要求比C所设计的要高。 在本课中 我们可以阅读有关Lambda表达式的更多信息它与功能接口有很深的联系还演示了将并行流与Lambda表达式配合使用的性能比较并加深了对Lambda表达式如何与功能接口一起使用以及可以在简单语句中使用的理解。利用多核操作系统提供的并行性而无需了解幕后工作的API。 上次更新时间为2020年2月17日 翻译自: https://www.javacodegeeks.com/lambda-expressions-java-tutorial.htmllambda表达式java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东营 微信网站建设做旅游网站挣钱吗

特权级别 级别的数值越大,特权级越高,掌控硬件的能力越强,在CPU硬件层面,M模式必须存在,其它模式可以不存在 执行环境调用 ecall ,这是一种很特殊的陷入类的指令, 相邻两特权级软件之间的接口正…

新办公司网上核名在哪个网站做农村网站平台建设方案

方法一、浏览器设置成兼容模式。 方法二、安装服务器版的.Net40的补丁。http://download.csdn.net/detail/5653325/6642051 方法三、点击VS的工具菜单--》库程序包管理器--》程序包管理器控制台(如果没有“库程序包管理器”的菜单,就先点那个“扩展管理器…

贵州省住房和城乡建设局网站汕头第一网

Thread.sleep();sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sle…

开饰品店网站建设预算列表怎么做网站

Ollama API 使用指南 简介 Ollama 提供了强大的 REST API,使开发者能够方便地与大语言模型进行交互。通过 Ollama API,用户可以发送请求并接收模型生成的响应,应用于自然语言处理、文本生成等任务。本文将详细介绍生成补全、对话生成的基本…

html网站建设基本流程图安阳信息港网站

API 接口 生成完成 生成聊天完成 创建模型 列出本地模型 显示模型信息 复制模型 删除模型 拉取模型 推送模型 生成嵌入 列出运行中的模型 版本 约定 模型名称 模型名称遵循 model:tag 格式,其中 model 可以有一个可选的命名空间,例如 ex…

常德制作网站敦煌网网站推广方式

【欢迎关注,点赞,收藏,私信交流】字符串函数查看字符的ascii码值ascii(str),str是空串时返回0select ascii(a);查看ascii码值对应的字符char(数字)select char(97);拼接字符串concat(str1,str2...)select concat(12,34,ab);包含字…

凡科建站的优缺点专业网站制作网络公司

2019独角兽企业重金招聘Python工程师标准>>> 接上篇”WCF实现REST服务“,服务端有了,我们看看客户端怎么访问,由于JS跨域的限制,这里通过WebClient做在后台代理来访问,话不多说,直接上代码。 1…

欧洲美妇做爰网站濮阳 网站建设

目录 一、图书推荐 |【CPython设计与实现】 1.1、书籍介绍 1.2、内容简介 1.3、适合哪些人阅读 1.4、作者译者简介 1.5、购买链接 一、图书推荐 |【CPython设计与实现】 "深入Python核心,揭秘CPython的设计智慧!📖 对于每一位热衷…

做网站流行的网站模板下载大全

PHP实现根据时间戳获取周几的方法,php戳获取周本文实例讲述了PHP实现根据时间戳获取周几的方法。分享给大家供大家参考,具体如下:获取某个时间戳的周几,以及未来几天以后的周几其中:$time 代表时间$i 今天开始具体示例…

国家网站icp备案查询wordpress关闭新闻活动模块

如果接口有多个实现,则Google guice提供了一种精巧的方法来选择目标实现。 我的示例基于Josh Long ( starbuxman )的出色文章,内容涉及Spring提供的类似机制。 因此,请考虑一个名为MarketPlace的接口,该接…

wordpress 点击数已有的网站如何做排名优化

文章目录 1. 背景介绍1.1 什么是Ceph?1.1.1 Ceph的核心组件1.1.2 Ceph的优势 1.2 自动化运维的需求目标 2. 平台架构设计和组件版本2.1 平台架构设计2.2 组件版本2.3 模块划分(已经脱敏处理)2.3.1 当前版本V1.0支持功能2.3.2 前后端代码结构t…

怎么进入追信魔盒网站开发软件深圳产品网站建设

简介: ods层数据同步时经常会遇到增全量合并的模型,即T-1天增量表 T-2全量表 T-1全量表。可以通过full outer join脚本来完成合并,但是数据量很大时非常消耗资源。本文将为您介绍在做增量数据的增加、更新时如何通过full outer join改写lef…

西宁中小企业网站建设对酒店网站建设的意见

一.kdb5_util: Password mismatch while reading master key from keyboard 1>.错误复现 2>.错误原因分析 在初始化Kerberos数据库时需要输入密码,2次密码输入不一致就会导致该错误。 3>.解决方案 重新执行"kdb5_util -r YINZHENGJIE.COM create -s…

企业网站模板 演示网站开发外键

大家在编程过程中都会用到一些异步编程的情况。在c#的BCL中,很多api都提供了异步方法,初学者可能对各种不同异步方法的使用感到迷惑,本文主要为大家梳理一下异步方法的变迁以及如何使用异步方法。 BeginXXX,EndXXX模式 在.Net F…

上海部道网站 建设快照不更新怎么办

在Rust语言中包含了一系列被称为集合的数据结构。大部分的数据结构都代表着某个特定的值,但集合却可以包含多个值。与内置的数组与元组类型不同,这些集合将自己持有的数据存储在了堆上。这意味着数据的大小不需要在编译时确定,并且可以随着程…

北京通信管理局网站备案处启迪设计集团股份有限公司

QT——tableWidget-跳变之舞V1.0-记录学习【1】 文章目录 QT——tableWidget-跳变之舞V1.0-记录学习【1】前言一、利用QT创建项目文件1.1 完整项目文件如下图所示:1.2 演示: 二、声明文件:2.1 主界面声明文件:mainwindow.h;2.2 控制窗口声明文…

搭建网站需要学什么软件下载wordpress如何访问量

惯例闲话:最近和老婆大人商议买车事宜,闲人以为会陷入买油车还是电车的纠结,没想到老婆大人无比坚定,买电车。在买车这方面,老婆的想法居然比闲人超前。闲人对车定位在代步工具,2年前,对车还是印…

网站开发设计体会wordpress亲子模板

一些做了二十多年外贸的老公司,早期就通过使用ERP软件来进行订单的处理,但是随着互联网的发展,用的年岁久了,软件运行速度也变卡了,看到别人家的新功能也眼馋,但是就是不敢升级,担心一升级&…

国外html5网站建设研究现状想做网站建设

前言 HTTP/1.1 是目前广泛应用的网络协议之一,虽然已经存在多年,但我们仍然可以通过优化来提升其性能和效率。本文将从优化思路的角度出发,探讨如何在 HTTP/1.1 协议下实现优化,包括避免发送重复 HTTP 请求、减少 HTTP 请求次数、…

天津星创网站建设有限公司门户网站建设存在的问题和差距

977. 有序数组的平方y 思路,原数组是有序的,但是因为负数平方后可能变无序了,因此利用双指针遍历原数组,比较 nums[left]*nums[left]和nums[right]*nums[right]谁更大,然后对新数组赋值 class Solution {public int…