函数式编程

29 篇文章 0 订阅
21 篇文章 0 订阅

优点:使代码更简洁,可读性更高

主要关注点:函数

  1. Lambda表达式
    (优化某些只有一个方法的匿名内部类:alt+回车,快捷键直接替换)
    函数式编程的具体体现
    不关注对象,而关注参数和方法体
    原则:可推导可省略
    用法:()->{},创建线程时可用
    省略规则:
    参数类型可以省略
    方法体只有一句代码时大括号return和唯一一句代码的分号可以省略
    方法只有一个参数时小括号可以省略

  2. Stream流
    区别IO流,此处Stream流是对集合进行操作
    常用操作:

    • 创建流
      把list集合转化为流 .stream()
      把数组转化为流 Array.stream(arr) 或 Stream.of(arr)
      把map集合转化为流 .entrySet()

    • 中间操作 .filter,符合条件的对象才能留在流中
      .map() 转换类型
      .distinct() 去重操作,需要重写equals方法
      .sort() 排序,空参时需要实现compare接口
      .limit() 设置流长度,超出被抛弃
      .skip(n) 跳过n个元素
      .flatMap() 把一个对象转化为多个对象放到流中
      在这里插入图片描述
      请添加图片描述

    • 终结操作 .foreach() 遍历
      .count() 计数
      .max() 最大
      .min() 最小
      .collect() 将当前流转换为集合,使用工具类Collectors
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      .anyMatch() 任何一个满足条件
      .allMatch() 所有都要满足条件
      ,noneMatch() 所有都不满足条件
      .findAny() 获取任意一个元素
      .findFirst() 获取第一个元素
      .reduce() 归并(缩减操作)
      在这里插入图片描述在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

  3. Optional对象
    避免空指针异常
    在这里插入图片描述
    使用ofNullable创建Optional对象
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    orElseGet() 安全获取值
    在这里插入图片描述
    orElseThrow() 抛出异常
    filter() 过滤方法
    isPresent() 是否存在数据
    map() 对数据进行转换

  4. 函数式接口
    只有一个抽象方法的接口
    常用函数式接口:
    Consumer 消费接口
    Function 计算转换接口
    Predicate 判断接口
    Supplier 生产型接口
    常用函数接口默认方法:
    Predicate -> .and .or
    在这里插入图片描述
    negate 取反

  5. 方法引用
    方法体中国只有一个方法,进一步简化
    基本格式:类名或者对象名::方法名
    推荐用法:lambda唯一一行代码是方法调用
    语法详解:
    类的静态方法 类名::方法名

    在这里插入图片描述
    在这里插入图片描述

       对象的实例方法   对象名::方法名
       ![在这里插入图片描述](https://img-blog.csdnimg.cn/5c07cde6539f449d8f264a1974dddfbc.png)
     	 引用类的实例方法  类名::方法名
     	 ![在这里插入图片描述](https://img-blog.csdnimg.cn/937668561ea946418a0cb9fa53f170a0.png)
    

在这里插入图片描述
构造器引用 类名::new
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值