Java 8 函数式编程(4)

本篇对应《Java 8 函数式编程》第 5 章。 要点回顾 方法 引用 是一 种 引用 方法 的 轻量级 语法, 形如: ClassName:: methodName。 收集 器 可用 来 计算 流的 最 终值, 是 reduce 方法 的 模拟。 Java 8 提供 了 收集 多种 容器 类型 的…

 621 total views

Published

Java 8 函数式编程(3)

本篇对应《Java 8 函数式编程》的第四章。 要点回顾 使用为基本类型定制的Lambda表达式和Stream,如IntStream可以显著提升系统性能。 默认方法是指接口中定义的包含方法体的方法,方法名有default关键字做前缀。 在一个值可能为空的建模情况下,使用Optional对象能替代使用null值。 练习 Question 1: Question2: 不能。 Question 3: 参考:  1,115 total views

 1,115 total views

Published

Java 8 函数式编程(2)

本篇对应《Java 8 函数式编程》的第三章。 PS:如果你还没有了解过 Iterator 设计模式,请先去了解一下 Iterator 设计模式。 Stream Stream 是用函数式编程方式在集合类上进行复杂操作的工具。 比如这个官方文档上的代码示例:计算所有红色 Widget 的权重的总和。 使用 Collection.stream() 方法,创建 widgets 集合的流。 使用 filter 操作,产生一个只包含红色 widgets 的流。 使用 mapToInt 操作,转换成红色 widgets 的权重的流。 使用 sum 操作,计算红色 widgets 的权重之和。 Stream operations and pipelines 流操作(Stream operations)分为中间操作(intermediate…

 717 total views

Published

Java 8 函数式编程 (1)

本篇对应《Java 8 函数式编程》的第一章和第二章。 什么是函数式编程 面向对象编程是对数据进行抽象,而函数式编程是对行为进行抽象。 每个人对函数式编程的理解不尽相同。但其核心是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值。 Lamda 表达式 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 lambda 表达式的语法格式如下: Lambda 表达式的简单例子: 有一点需要注意的是: Lambda表达式中引用的局部变量必须是final或既成事实上的final变量。 函数式接口 在介绍 Functional Interface 之前,我们先来了解一下另外一个概念(first-class functions)。 In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the language supports passing functions…

 715 total views

Published