jdk8lambda_JDK8 lambda的会话指南–术语表

jdk8lambda

上次出现…我写了一篇与JDK8为我们提供的新方法有关的文章。 最令我兴奋的功能是lambda。 我必须承认,在即将成为浪子的第一年(在此期间,我使用C#进行了开发),我喜欢LINQ和它可以做的漂亮,优雅的事情。 现在,即使擦除仍然在我们上次离开的地方,现在我们有了更好的过滤,更改,遍历集合以及语法糖旁边的方法,这也可能使您正确使用四核处理器你向朋友吹牛。 在谈论朋友时,这篇文章是与lambda和流处理相关的术语表,当他们问您:“ <DKD 8中与lambdas相关的地名是什么?”时,您可以扔给朋友们。 我无意提供完整列表或lambda指南,如果我说错了什么或错过了什么,请告诉我...

功能界面:

根据[jls 8],功能接口是仅具有一个抽象方法的接口,因此表示单个功能协定(在某些情况下,此“单个”方法可以采用具有等效等效签名的多个抽象方法的形式( [jls7_8.4.2])从超级接口继承;在这种情况下,继承的方法在逻辑上表示单个方法。

@FunctionalInterface –用于指示接口旨在成为功能接口。 如果注释放置在实际上不是的接口上,则会发生编译时错误。

例如:

interface Runnable { void run(); }

Runnable接口是一个非常合适的示例,因为当前存在的唯一方法是run方法。 功能接口的另一个Java“经典”示例是Comparator <T>接口,在下面的示例中是前面提到的接口,并且equals方法继承自Object ,该接口仍然起作用,因为compare方法是唯一的抽象方法,而equals继承自超类。

interface Comparator<T> {boolean equals(Object obj);int compare(T o1, T o2);}

–根据[牛津词典],在计算中是连续的数据或指令流,通常是恒定或可预测的速率。

从JDK 8 开始,代表一种机制,用于通过计算管道从数据源传送元素。 流可以用作数据源,数组,集合,生成器功能,I / O通道。 获取流:

  • Collection通过stream()和/或parallelStream()方法;
  • 从数组通过Arrays.stream(Object[])
  • 从流类的静态工厂方法开始,例如Stream.of(Object[])IntStream.range(int, int)Stream.iterate(Object, UnaryOperator)
  • 可以从BufferedReader.lines();获得文件的行BufferedReader.lines();
  • 可以从Files中的方法获取文件路径流。
  • 可以从Random.ints();获得随机流Random.ints();
  • JDK中的许多其他流承载方法, including BitSet.stream()Pattern.splitAsStream(java.lang.CharSequence)JarFile.stream()

流操作对流执行的操作。 从流操作的角度来看,有两种类型的操作:中间操作和终端操作

流中间操作 –缩小流内容的操作。 中间操作本质上是惰性的–实际不更改流的内容,而是创建另一个更窄的流。 仅当调用终端操作时才开始流的遍历。

  • filter –根据提供的谓词过滤流
  • map –通过将映射函数应用于初始流中的每个元素来创建新流(每种数字类型的对应方法:int,long,double)
  • flatMap –一种操作,其作用是对流的元素进行一对多转换,然后将结果元素展平为新的流。 例如,如果订单是采购订单流,并且每个采购订单都包含一个订单项集合,则以下内容将生成一个订单项流:
orderStream.flatMap(order -> order.getLineItems().stream())
  • 与众不同–返回不同的操作流
  • 已排序–返回已排序操作流
  • peek –调试专用的方法,该方法返回包含该流元素的流,所提供的操作在每个元素上执行

例如:

list.stream().filter(filteringFunction).peek(e -> {System.out.println("Filtered value: " + e); });.map(mappingFunction).peek(e -> {System.out.println("Mapped value: " + e); });.collect(Collectors.intoList());
  • limit –返回当前流的截断版本(不超过元素的限制数量)
  • substream –返回由起始位置或startPosition与endPosition之间的剩余元素组成的流

流终端操作 –遍历流以产生结果或副作用。 执行完终端操作后,该流被视为已消耗(在已消耗的流上调用另一个操作将抛出IllegalStateException )。 终端操作本质上是急切的,除了iterator()splititerator()为那些在API中找不到所需功能的人提供了扩展机制。

  • forEach –将提供的操作应用于流的每个元素。 也存在forEachOrdered版本
  • toArray –将流的元素提取到数组中
  • 减少–减少方法
  • 收集-可变还原法
  • min –计算流的最小值
  • max –计算流的最大值
  • count –计算流中的元素
  • anyMatch-如果存在与提供的条件匹配的元素,则返回true
  • allMatch –如果所有元素都匹配,则返回true
  • noneMatch –如果所有元素都不匹配,则返回true
  • findFirst –查找与提供的条件匹配的第一个元素
  • findAny –从流中返回一个元素

流管道 :由一个源,随后的零个或多个中间操作和一个终端操作组成。

分离器 –用于遍历和分配源元素的分离器。 可以将其用于遍历,估计元素数量或将其拆分为多个拆分器

归约 –归约操作(或折叠)采用一系列输入元素,并通过重复应用合并操作将它们组合成单个汇总结果。 归约运算可以计算总和,最大值,最小值,计数或收集列表中的元素。 简化操作还可以并行化,只要所使用的函数是关联的和无状态的即可。 用于减少的方法是reduce()

例如:使用和减少:

int sum = numbers.stream().reduce(0, (x,y) -> x + y);

要么

int sum = numbers.stream().reduce(0, Integer::sum);

可变归约 –是一种在处理流中的元素时将输入元素累积到可变结果容器(StringBuilder或Collection)中的操作。

例如:

String concatenated = strings.reduce("", String::concat)

谓词 –确定输入对象是否符合某些条件的功能接口

我希望这个精简的列表对您有所帮助,并且在您需要在一页上使用所有这些术语的时候将其保留在书签中。

如果您发现缺少的东西,请告诉我,以便纠正。

所以……我希望您有个不错的降临时间,并祝您开心/快乐/快乐,但最重要的是,我希望您有一个平安的圣诞节!

参考: 关于JDK8的lambda的会话指南– Java出现日历博客上来自JCG合作伙伴 Attila Mihaly Balazs 的术语表 。

翻译自: https://www.javacodegeeks.com/2013/12/a-conversational-guide-for-jdk8s-lambdas-a-glossary-of-terms.html

jdk8lambda

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

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

相关文章

【渝粤题库】陕西师范大学202041 国际经济学 作业(专升本)

《国际经济学》作业 一.判断题 &#xff11;&#xff0e;重商主义认为每个国家应该努力实现出口等于进口的平衡贸易 &#xff12;&#xff0e; 比较优势原理只能应用于简单的两国模型中&#xff0c;而不能应用于现实中众多国家与贸易的情况。 &#xff13;&#xff0e;一般来说…

【渝粤题库】陕西师范大学202831 程序设计 作业(专升本)

陕西师范大学 内 部 题 库 教育 &#xff08;yuyueshool&#xff09; 编制 《VB程序设计》作业 一&#xff0e;选择题 1&#xff0e;在Visual Basic中&#xff0c;称对象的数据为_____。 (A) 属性 (B) 方法 © 事件 (D) 封装 2&#xff0e;下列选项中为字符串常量的是___…

oracle查询字段有list,java读取oracle表字段信息存到列表(LIST)中

今天在研究如何将oracle表字段的信息存到列表数组中&#xff0c;做了一点实验&#xff0c;是在java1.5下&#xff0c;用myeclips做的&#xff0c;代码如下&#xff1a;public static List> gocilist(Connection conn,String table){ResultSet rs null;Statement stmtnull;/…

【渝粤题库】陕西师范大学209912 金融中介学Ⅰ 作业

《金融中介学Ⅰ》作业 一、单选题 1、金融中介提供的是服务&#xff0c;收取的是&#xff08; &#xff09; A 手续费 B 佣金 C 服务费 D金融费 2、&#xff08; &#xff09;是金融市场活动的组织承担者。 A银行 B投资银行 C 金融中介机构 D投资者 3、&#xff08; &#xff0…

【渝粤题库】陕西师范大学210032学前心理学 作业(专升本)

《学前心理学》作业 一、填空 1、研究儿童心理必须遵循的原则是______ 、 _______ 、。 2、新生儿最基本的无条件反射是 、 ________ 、。 3、学前儿童掌握实物概念的特点是以_______为主&#xff0c;以_______为主。 4、感觉既是一种______现象&#xff0c;又是一种_______现象…

【渝粤题库】陕西师范大学292961 会计学 作业 (高起专)

《会计学I》作业 一、名词解释 1、会计 2、会计主体 3、会计职能 4、会计科目 5、实地盘存 6、复式记账 7、会计期间 8、会计计量 9、会计凭证 10、会计账簿 二、填空 1&#xff0e; 会计分录是根据__________在记账凭证中,指明经济业务应借、应贷的会计科目及其金额的记…

无服务器,Java和FN项目的第一步

无服务器不是什么新事物&#xff0c;但是可以说&#xff0c;仍然有很多关于它的炒作&#xff0c;以及它将如何改变一切&#xff0c;以及未来将如何成为无服务器。 除了云提供商提供的无服务器/功能之外&#xff0c;还有越来越多的无服务器项目正在我们的路上&#xff0c;目的是…

php中可以实现分支,PHP中的分支及循环语句

这次实践的都是PHP7的语法。感觉是以前的5差别不是那么大&#xff0c;只是希望越来越快吧。$looking isset($_GET[title]) || isset($_GET[author])?>BookStoreecho "Befor the conditional.";if (2 > 2) {echo "Inside the conditional.";} elsei…

【渝粤题库】陕西师范大学500000 数理方法 作业(专升本)

《数理方法》作业 复数z1i 的指数表达式为&#xff08; &#xff09; A&#xff0e; B&#xff0e; C&#xff0e; D&#xff0e; 在解析函数论中&#xff0c;区域是满足下列&#xff08; &#xff09;条件的点集 A&#xff0e;由内点组成&#xff1b;不一定有连通性。 B&…

【渝粤题库】陕西师范大学700004 植物生理学

《植物生理学》作业 一、 名词解释 &#xff11;&#xff0e;必需元素 &#xff12;&#xff0e;原初反应 &#xff13;&#xff0e;三重反应   &#xff14;&#xff0e;水势 &#xff15;&#xff0e;光呼吸 &#xff16;&#xff0e;植物生长物质   &#xff17;&#xff…

linux结束所有任务命令行,Linux基础命令(15)定时任务

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;crontadLinux定时任务Crontab命令详解linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作&#xff0c;因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设…

国家开放大学2021春1026西方经济学(本)题目

教育 教育 试卷代号&#xff1a; 1026 2021年春季学期期末统一考试 西方经济学&#xff08;本&#xff09; 试题 2021年7月 一、单项选择题&#xff08;在下列各题的备选答案中选择一个正确的&#xff0c;并将其序号字母填入题后的括号里。每题2分&#xff0c;共30分&#xf…

国家开放大学2021春1127实用卫生统计学题目

教育 教育 试卷代号&#xff1a; 1127 2021年春季学期期末统一考试 实用卫生统计学 试题&#xff08;开卷&#xff09; 2021年7月 一、单项选择题&#xff08;每题2分&#xff0c;共20分&#xff09; 1.若要通过样本进行统计推断&#xff0c;样本应该是( )。 A.总体中典型的一…

【渝粤题库】广东开放大学 C语言程序设计 形成性考核

选择题 题目&#xff1a;C语言的基本构成单位是&#xff1a; 。 答案&#xff1a; A、函数 B、函数和过程 C、超文本过程 D、子程序 题目&#xff1a;一个 C语言程序总是从 开始执行。 答案&#xff1a; A、主过程 B、主函数 C、主程序 D、子程序 题目&#xff1a;C语言的程序一…

如何修复无效的目标版本:Maven Build中的1.7、1.8、1.9或1.10错误

如果您正在使用Maven构建Java项目&#xff0c;可能是在Eclipse中&#xff0c;或者是通过运行mvn install在命令提示符下构建的&#xff0c;并且构建失败并显示诸如“无效的目标发行版&#xff1a;1.7”或“无效的目标发行版&#xff1a;1.8”之类的错误&#xff0c;那么您来了到…

【渝粤题库】广东开放大学 Linux 形成性考核

选择题 题目&#xff1a;以下描述正确的是&#xff1f; 答案&#xff1a; A、Linux就是批处理系统 B、批处理系统出现早于分时系统 C、Windows是批处理操作系统 D、批处理系统可以同时执行多个任务 题目&#xff1a;以下哪个是移动操作系统&#xff1f; 答案&#xff1a; A、Li…

Linux查看时间段文件,Linux查看特定时间段内修改过的文件

一.Linux系统日志的一些信息&#xff0c;日志配置文件syslog.conf系统日志一般都存在/var/log下常用的系统日志如下:核心启动日志:/var/log/dmesg系统报错日志:/var/log/messages邮件系统日志:/var/log/maillogFTP系统日志:/var/log/xferlog安全信息和系统登录与网络连接的信息…

【渝粤题库】广东开放大学 公共政策学 形成性考核

选择题 题目&#xff1a;公共政策学涵盖了社会学、经济学、政治学、历史学、心理学、人类学、法学和行政学等学科的理论与方法&#xff0c;这体现了公共政策学的&#xff08;&#xff09;。 答案&#xff1a; A、实践性 B、科学性 C、发展性 D、综合性 题目&#xff1a;&#x…

linux系统四个组成部分,Linux系统由哪几部分组成?系统详解(干货)

原标题&#xff1a;Linux系统由哪几部分组成&#xff1f;系统详解(干货)我们常说的Linux一般指的是系统内核&#xff0c;基于Linux系统内核的操作系统叫Linux发行版操作系统&#xff0c;像redhat、centos、ubuntu和安卓等都是Linux发行版操作系统。Linux一般有4个主要部分&…

【渝粤题库】广东开放大学 发展与教育心理学 形成性考核

选择题 题目&#xff1a;无意义音节的首创者和遗忘曲线的最先提出者是 答案&#xff1a; A、冯特 B、艾宾浩斯 C、巴甫洛夫 D、弗洛伊德 题目&#xff1a;影响心理发展的因素中&#xff0c;下列说法正确的是 答案&#xff1a; A、生理成熟制约着心理发展的顺序和规律 B、环境和…