• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
flydoging
博客园    首页    新随笔    联系   管理    订阅  订阅

Effective Java读书笔记

开始读书吧

一共10节,因为每一节之间并没有太大联系

46条   优先选择Stream中无副作用的函数

  Stream并不只是一个API,而是一种函数式的编程模型,可以带来编码的描述性、速度以及并行性.Stream范型最重的是把计算构造成一系列变型,每一级结果都尽可能的靠近上一级结果的纯函数(纯函数的结果只取决于函数本身,不依赖于任何可变的状态,也不更新任何状态),因此传入Stream的函数对象不必须是无副作用的.

  Stream的终止操作中,forEach是最没有威力的,它是显示迭代因而不适合并行操作.forEach操作应该仅用于展示Stream的计算结果,而不是执行计算.但是可以使用forEach将Stream的计算结果添加到之前已经存在的集合中.

  collector收集器:

  • 有三个这样的收集器(将Stream中的元素收集到一个真正的集合中):toList()/toSet/toCollection(collectionFactory),这几个方法都是final类Collector中的静态方法
  • 另外可能会用到的比较器实例可以通过Comparator的静态方法comparing(Function)来创建使用
  • 映射收集器toMap(Function, Function)

  

 

posted @ 2019-03-22 14:39  flydoging  阅读(123)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3