1.Lambda表达式

语法糖 也叫作糖衣语法,增强了代码的可读性 避免了出错的机会
 但是,这种语法对于语言的功能并没有增强

和Lambda一样的糖衣语法还有:(1)泛型 <>(2)自动装箱拆箱(3)增强for循环

基本格式
            (参数列表)->{方法体};
  解释:
    1. "->" 表示 转为/成为左边指定输入的参数 右边是Lambda的方法主体

注意:
  1. 只有是函数接口(当一个接口中 只包含一个方法时 该接口叫做函数接口) 才能使用Lambda表达式替换

格式:
            ()->{}
            1.(参数列表)->表达式
              花括号可省略 省略后 不能书写return关键字
            2.形参列表的类型声明 可省略 java在编译的时候 会根据上下文 自动推断出参数类型
            3.小括号可省略 形参列表是一个的时候可省略
            4.return关键字
                如果是单一表达式 可不写
                如果写了return 就必须写花括号

2.Lambda表达式的基本应用

2.1 线程中的使用
        2.2 forEach方法在集合中的使用
            Iterable 1.8新增方法
                default void forEach(Consumer<? super T> action)
            Map 1.8新增方法
                default void forEach(BiConsumer<? super K,? super V> action)  
        2.3 集合的排序
            List集合出现自有的排序方法sort() 可根据Comparator比较器顺序进行排序
        2.4 数组的排序
        2.5 特殊的双冒号:: 方法引用
            这是java8的Lambda表达式写法 叫做方法引用 (method references)
            是Lambda的简写形式
            注意:
                1.是Lambda的简写形式
                2.调用一个已存在的方法
                3.当我们需要引用的方法传入其他类型参数的时候 不适合
            语法:
                左边是容器(类名/实例名)
                中间::
                右边是要调用的方法名
            1.非静态方法调用
                对象的引用::方法名
                想要调用该对象所属类的一个已存在方法

p::getName;
            2.静态方法调用
                类名::方法名

3.构造方法调用
                类名::new

2.局部内部类中变量的修饰符
    final修饰符可省略
    内部类在访问 它所在的方法中的变量时 该变量必须是常量(被final修饰的)
    jdk1.8之后 省略了final修饰符 但是本质上该变量还是final的

3.Stream接口
    和Iterator很像
    Stream (流) 和 InputStream/OutputStream 没有关系

创建一个Stream 需要指定一个数据源 比如Collection的子类
        List 和 Set 支持,Map不支持

3.1去重

3.1是否包含

3.3排序

3.4返回第一个元素

3.5最大最小

3.6将stream转为list集合

1.Lambda表达式的更多相关文章

  1. 你知道C#中的Lambda表达式的演化过程吗?

    那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...

  2. Linq表达式、Lambda表达式你更喜欢哪个?

    什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...

  3. 背后的故事之 - 快乐的Lambda表达式(一)

    快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...

  4. Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)

    作者:Antonio Leiva 时间:Jan 5, 2017 原文链接:https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式 ...

  5. java8中lambda表达式的应用,以及一些泛型相关

    语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...

  6. 背后的故事之 - 快乐的Lambda表达式(二)

    快乐的Lambda表达式 上一篇 背后的故事之 - 快乐的Lambda表达式(一)我们由浅入深的分析了一下Lambda表达式.知道了它和委托以及普通方法的区别,并且通过测试对比他们之间的性能,然后我们 ...

  7. CRL快速开发框架系列教程二(基于Lambda表达式查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  8. Lambda 表达式递归用法实例

    注意: 使用Lambda表达式会增加额外开销,但却有时候又蛮方便的. Windows下查找子孙窗口实例: HWND FindDescendantWindows(HWND hWndParent, LPC ...

  9. Spark中Lambda表达式的变量作用域

    通常,我们希望能够在lambda表达式的闭合方法或类中访问其他的变量,例如: package java8test; public class T1 { public static void main( ...

  10. 释放Android的函数式能量(I):Kotlin语言的Lambda表达式

    原文标题:Unleash functional power on Android (I): Kotlin lambdas 原文链接:http://antonioleiva.com/operator-o ...

随机推荐

  1. idea快捷键-eclipse

    ctrl+shift+R 查找文件ctrl+shift+T 查找class类alt+Enter 导包alt+Shift+P 实现方法

  2. 用R的dplyr进行数据转换(一)

    在网上找了很久关于数据转换的,都没有找到比较好的.现在为大家整理一下.按照我自己的思路.当然也是为了自己做笔记. 为了方便,大家可以统一安装一个系列的包,这个只需要安装tidyverse这个包就可以, ...

  3. python标准库:ftplib模块

    ftplib模块包含了文件传输协议(FTP)客户端的实现. 下面的例子展示了如何登入和获取进入目录的列表,dir函数传入一个回调函数,该回调函数在服务器相应时每一行调用一次.ftplib模块默认的回调 ...

  4. node新人

    node  使用   http和express创建服务器环境 如 apache  iis等 不需要配置一堆文件  为啥使用node  省事  v8引擎  异步js 不影响浏览者浏览网站 redis   ...

  5. JavaIO 流(1)IO流介绍

    IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...

  6. 分布式ID生成策略 · fossi

    分布式环境下如何保证ID的不重复呢?一般我们可能会想到用UUID来实现嘛.但是UUID一般可以获取当前时间的毫秒数再加点随机数,但是在高并发下仍然可能重复.最重要的是,如果我要用这种UUID来生成分表 ...

  7. ypoj 2286 佳佳买菜

    题目名称:佳佳买菜 描述 佳佳是我们的ACM社团的副社长,她感觉得自己没存在感,so-由于实验室要聚餐了,佳佳决定买点菜,来做菜给大家吃.佳佳喜欢吃娃娃菜,于是她来到买菜的地方.佳佳:我要10斤娃娃菜 ...

  8. Android入门(创建、编译、运行、打包、安装)

    一.创建Android项目 1.选择Emtpy Activity=>Next 2.配置项目 输入Name(名称) Package.name(包名) Save location(保存位置) Lan ...

  9. 挖SRC逻辑漏洞心得分享

    文章来源i春秋 白帽子挖洞的道路还漫长的很,老司机岂非一日一年能炼成的. 本文多处引用了 YSRC 的 公(qi)开(yin)漏(ji)洞(qiao).挖SRC思路一定要广!!!!漏洞不会仅限于SQL ...

  10. idea导入 spring framework项目

    准备的环境:gradle,idea 注意:gradle版本不一致会报各种错误,那么怎么查找依赖的版本呢? 首先在git上把spring framework项目拉取下来, 步骤一:复制URL路径 步骤二 ...