【Java从入门到头秃专栏 7】语法篇(六) :Lambda表达式(->) 方法引用(::) stream流

目录

1 Lambda表达式( -> )

​ 2 方法引用( :: )

3 Stream流


        接下来介绍的三种语法叫:Lambda表达式 方法引用 stream流,这三种语法的使用要有特定条件,在一定条件下借助这三种语法可以使代码十分简单且优雅,但是不要舍本逐末为了使用而使用,这样的话可能会起到相反的作用。其实大多情况下这种代码并不是十分常用,但是如果想要阅读源码或者说别人的代码,就需要知道这三种语法的使用规范了,这就是学习三种语法的目的:不是为了装逼,而是为了不让别人拿这个在我们面前装逼。

1 Lambda表达式( -> )

    Lambda表达式的作用就是为了简化函数式接口的匿名内部类的一种代码写法,函数式接口就是内部只有一个抽象方法的接口,函数式接口会使用@FunctionalInterface注解标明,Lambda表达式的格式如下:

(匿名内部类被重写方法的形参列表)  ->{

    被重写方法的方法体;

}

Lambda表达式的简化写法:

  • 如果重写方法的方法体只有一行代码,同时省略大括号和分号不写,如果这行代码是个return语句的话还要省略return不写
  •  形参列表的参数类型也可省略不写
  • 如果只有一个参数的话可以同时省略参数类型和小括号

实现Runnable接口创建线程的Lambda写法

collections排序的Lambda写法 

 2 方法引用( :: )

    方法引用是为了进一步的简化Lambda表达式的写法,主要有以下四种引用形式:静态方法的引用、实例方法的引用、特定类型方法的引用、构造器的引用

静态方法的引用

⚠  被引用静态方法的参数列表要和函数式接口中抽象方法的参数列表保持一致

类名::静态方法名 

   

实例方法的引用

⚠  被引用实例方法的参数列表要和函数式接口中抽象方法的参数列表保持一致

对象名::实例方法名 

最经典的实例方法就是输出语句

  

特定类型方法的引用

⚠  被引用方法的参数列表中的第一个参数作为后面返回语句中方法的调用者

调用者的类型::方法

构造器的引用

 ⚠  返回值是使用一个构造器创建对象

构造器::new

3 Stream流

Stream流是用来简化集合或者数组中一些API的代码写法。要想使用Stream流,需要先获取到stream流对象才能使用Stream流的API。最终处理好的stream流对象还是应该转换为集合。

Stream流获取

collection集合:集合名.stream()

Map集合:集合名.keySet().stream()

        集合名.values().stream()

      集合名.entrySet().stream()

数组:Arrays.stream(集合名)

常用API:

 ⚠  forEach方法没有返回值、count方法返回值是long型,只有返回值是stream对象的才能一直使用链式编程一直调用下去,只要出现方法的返回值不是stream流对象的话,就不能采用链式编程。

stream流对象转集合、数组

 ⚠  一个流对象只能被转一次,想要再转就要再次创建流

上一篇:

下一篇:

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

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

相关文章

【Java从入门到头秃专栏 4】语法篇(三) :字符串 数组

目录 1 String字符串 2 数组 1 String字符串 Java没有内置的字符串类型,而是在Java类库中提供了一个预定义类--String。 在Java中把每一个使用双引号括起来的字符串都看做是String类的一个实例化对象。 String常被称作是不可变字符串类型,那么有人就有…

【Java从入门到头秃专栏 8】语法篇(七) :反射 动态代理 注解

目录 1 反射机制 2 反射的应用:动态代理 3 注解 1 反射机制 反射机制(Reflect Machanism),是指在程序运行期间借助Reflect API获取任何类的内部信息,并能直接操作对象的内部属性以及方法,Java本身而言是静态语言但是由于Java反…

【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 2】Spring相关API 数据源(连接池)的配置 注解开发 整合junit

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 4】 Spring集成web环境 SpringMVC初识

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 ​…

IntelliJ IDEA里的项目搞崩了怎么办,本地历史版本回退拯救你崩溃的心灵

💥写在前面: 如果你还没有读过雨果的悲惨世界也没有读过余华的活着,那你可以看看我今天早上的经历,如果不想听我胡侃的话,直接进入正题: 目录 本地历史的强大 今天早上打开IntelliJ IDEA继续ssm模块的代码练…

【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 6】springMVC拦截器、异常处理 jdbcTemplate

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 7】springAop 事务控制

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 8】一篇博客快速上手使用MyBatis进行CRUD

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 9】SSM框架整合

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

三万字速通SSM框架入门知识点,快速上手CRUD

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

问题简介 本人是在进行一个ssm框架项目的编写的时候,在数据库中查询到所有的商品信息并返回到页面使用EL表达式进行展现,但是使用tomcat 9.0.58运行的时候报错会出现以下报错情况。 页面报错: 控制台报错: 解决方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判断自己是在什么情况下报的错,如果是MyBatis的SQL报错的话,建议直接点击目录跳转到MyBatis时SQL报错,避免浪费时间。如果本文能够对你有所帮助的话,还请在评论区多多支持 目录 🍻运行SQL语句、SQL文件等报错 &…

MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件

下载MyBatis的逆向工程工具,并解压缩到一个不包含中文字符的文件夹下,我直接放到了D盘下,下载地址:MyBatis逆向工程工具下载 如何使用MyBatis的逆向工程工具 下载之后使用idea在一个新窗口中打开,选中工具文件之后&am…

『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)

🛫ssm知识学习见SSM_面向CRUD编程专栏 🚕本项目来自动力节点的【米米商城】 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 项目…

【SpringBoot 2】(一)基础知识了解学习

🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 ​ 目录…

【SpringBoot 2】(二)快速入门案例HelloWorld

🛫更多知识总结见SpringBoot 2专栏 ( 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 ​ 目…

【SpringBoot 2】(三)SpringBoot相较于Spring的特点

🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 ​ 目录…

井通swtc能不能涨到2元_买一支2块到3块之间的股票,买几十万股吗?这样操作效果怎么样?...

有很多新股民有一种看法,认为高价股风险很大,那么可不可以买2到3元的低价股,是不是风险就很小,以后上涨的力度就会很大?这是很多股民都存在的一个误区,也是很多股市的所谓高手的误导,他们说&…