
Java 8
文章平均质量分 85
yqj2065
《编程导论(Java)》作者
展开
-
5.5 Map-Reduce(映射-归约)模型
Java8引入的流即java.util.stream.Stream,被称为具有函数式编程风格。其流水线操作就属于本章的主题:封闭性操作。对流的认识和把握,可以溯源于映射-归约模型。Map-Reduce/映射-归约,是一种借鉴信号处理过程、对大规模数据进行处理的模型。它包含3方面:对于一个数据序列,. 对(数据序列的)每一个数据进行转换,Map-Reduce中的Map,指从一个数据序列得到另一个数据序列。转换操作,包括函数映射/map、过滤/filter等操作; 对这个数据序列进行归约。Map-R原创 2020-06-13 22:36:40 · 1922 阅读 · 0 评论 -
定义Java的三元函数
java.util.function包Function家族很庞大,共25个函数接口。但是Java 库只提供单个参数和两个参数的函数映射接口。如果需要更多参数,如三元函数,可以自己编写,还可以采用柯里化技术先获得BiFunction对象。package chap2.closure.currying;import java.util.function.BiFunction;/** * 三...原创 2019-11-18 20:28:28 · 2047 阅读 · 0 评论 -
Java8:λ表达式作为实参
像传递数据一样传递操作/代码原创 2016-06-07 12:15:50 · 3974 阅读 · 0 评论 -
通用函数接口java.util.function.*[
【2.1.4 通用函数接口java.util.function.* 返回目录】为了配合λ表达式的使用,定义了一些作为形参的函数接口。java.util.function包基本覆盖了程序员对函数接口的各种需求。1.方法的类型签名函数的类型签名,描述方法的形参列表类型通过本方法处理后,形成返回值类型。以如下格式描述:(形参列表类型) ->返回值类型从方法的类型签名...原创 2015-10-20 16:13:13 · 9051 阅读 · 0 评论 -
5.5.3 Java流:一个一个地提供数据
要使用Map-Reduce模型,就需要设计一种替代List的结构,该结构对数据序列的供给过程和使用过程交替进行,即每提供一个元素就进行过滤和累积;这种结构就是流。原创 2016-12-25 22:27:00 · 873 阅读 · 1 评论 -
My Java 8 in Action
《Java 8 in Action》有500+页,相当地啰嗦。啰嗦的另一面是详细,可以作为我学习Java 8的一个索引。在“编程导论_codes_补充\Java8Demo”创建了一个Netbeans项目。第0章 简介第1章 λ表达式技术上,λ表达式并不能够让程序员做Java 8之前不能够做的事情,λ表达式只是实现回调函数的更紧凑的方式。观念上,Java引入λ表达式,希望程序员...原创 2016-06-13 23:07:51 · 1262 阅读 · 0 评论 -
Java8:纠结的默认方法
【编程导论(Java)·4.3Java接口】Java8中引入的默认方法,充分展示了Java平台概念的一致性与JDK向前兼容之间的矛盾原创 2014-06-16 11:21:57 · 7458 阅读 · 5 评论 -
桥接模式和嵌套lambda表达式
嵌套lambda表达式 :x->y->x+y上课时,我们在策略模式的基础上,介绍了其推广模板方法模式与桥接模式。n次策略模式2次行为参数化(可变部分)是独立的,则模板方法模式 2次行为参数化(可变部分)是串接的,则桥接模式。参考传统桥接模式【注,链接文章没有抓住桥接模式的本质——在策略中提供策略,而是从避免类型爆炸出发。yqj2065不想修改它了】1.桥...原创 2016-11-26 16:23:32 · 1625 阅读 · 0 评论 -
Java8:Stream概念
参考:Java 8 Stream Tutorial什么是流、管道/Pipelinin、惰性/ laziness、部分地构造、流的一次性原创 2016-06-16 13:17:52 · 2966 阅读 · 0 评论 -
Java 8 :λ表达式(lambda)的基本用途
λ表达式的基本用途原创 2014-07-04 23:56:47 · 8135 阅读 · 0 评论 -
Java8对《编程导论(Java)》的影响
What's New in Java 8原创 2015-07-11 16:42:34 · 946 阅读 · 0 评论 -
Java 8:延迟计算
Java8:Stream概念的细化,讨论延迟计算/惰性求值Lazy Evaluations。Java中常见的逻辑操作be1&&f(),是短路/short-circuiting计算,避免了执行不必要的表达式或方法调用。它使用的就是惰性求值或者说正常顺序/normal order(SICP中译为正则序);与此同时,方法实参的求值是饥饿或者说应用序/applicative order,在方法原创 2016-06-20 00:01:44 · 4452 阅读 · 0 评论 -
阿莲,你能不能够接受 那个从前的for
阿莲 你能不能够接受那个从前的for再让ta回到你的身边我停留在一个人的世界于是懂得了什么是孤单我多想找回最初的爱阿莲 在我心里在我的睡梦里忘不了的是你美丽的脸 oh你温柔的眼 public static boolean isPrime(int n) { return n > 1 && IntStream.rangeClosed(2原创 2016-06-20 00:33:40 · 1254 阅读 · 1 评论 -
Java 8:不动点
Java练习:牛顿迭代法 Vs. 不动点 中,介绍了Java中求平方根、求方程的解的不动点解法 getFixedPoint(DoubleUnaryOperator duo)在Java 8中,我们可以将不动点的逼近数字序列,非常简单地打印出来。下面的代码打印sqrt(2.0)的不动点的逼近数字序列 public static void iterate(){ Unar原创 2016-06-16 20:49:13 · 836 阅读 · 0 评论 -
Java8:创建Stream
列举创建Stream、IntStream(LongStream、DoubleStream)对象的一些常见例子。1.by Values or Collection(1)因为Stream的静态方法of public static Stream of(T... values) { return Arrays.stream(values); }通过一系原创 2016-06-27 00:14:22 · 1726 阅读 · 0 评论 -
《编程导论(Java) ·10.3》补充:递归的优化
递归强大、优雅、易实现...问题是效率和栈溢出(java.lang.StackOverflowError)。为什么Scheme不需要迭代结构如while、for呢?在Java编译器不直接支持尾调用优化 tail-call optimization (TCO)的情况下,如何使用lambda表达式的延迟计算或者直接使用流来优化递归?递归会导致Java中迭代的消失吗?原创 2016-06-21 12:11:51 · 2042 阅读 · 0 评论 -
点滴-Java8的日期类
Java8的日期类不熟悉啊,几个小姿势记录一下。1.LocalDate.now()不是享元yqj2065要大量创建LocalDate对象,所以要自定义一个MyDate, public static final LocalDate today = LocalDate.now(); LocalDate d1 =LocalDate.now(); LocalDa原创 2015-11-21 22:22:36 · 996 阅读 · 0 评论