Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >流上应用的andThen函数和forEach函数

流上应用的andThen函数和forEach函数
EN

Stack Overflow用户
提问于 2020-12-06 03:30:39
回答 1查看 57关注 0票数 0

给出下面这段代码,我无法理解它是如何返回此输出的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 2 = 2
1 * 2 = 4
2 * 2 = 6
3

public static void generateMultiplicationTable(int number){
Stream<Integer> sin = Stream.of(1, 2, 3 );
Consumer<Integer> c1 = System.out::print;
Consumer<Integer> c2 = x->{ System.out.println(" * "+number+" = "+x*number); };

sin.forEach(c2.andThen(c1));}

我理解andThen是如何工作的,将第一个函数的输出应用于第二个函数作为输入,基于这种理解,它应该返回以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 2 = 2
* 2 = 4
* 2 = 6
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-06 03:52:24

andThen的实现类似于下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
default Consumer<T> andThen(Consumer<? super T> after) {
    return (T t) -> { 
        this.accept(t); 
        after.accept(t); 
    };
}

因此,forEach调用可以重写为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sin.forEach(number -> {
    c2.accept(number);
    c1.accept(number);
});

因此,对于流的第一个元素,c2打印* 2 = 2,新行c1打印1。第二个元素使c2打印* 2 = 4和一个新行,c1打印2,依此类推。

如果你真的想要一个乘法表,你应该先运行c1,即c1.andThen(c2)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65164398

复制
相关文章
函数指针和函数指针数组及其应用
这是一个基础的不能再基础的例子。相信学过指针的都能看得懂。P是一个指针,指向a。a 是一个整形变量。
全栈程序员站长
2022/09/14
7760
函数柯里化(Currying)和偏函数应用(部分应用函数)(Partial Application)的比较
【名词解释】Currying:因为是美国数理逻辑学家哈斯凯尔·加里(Haskell Curry)发明了这种函数使用技巧,所以这样用法就以他的名字命名为 Currying,中文翻译为“柯里化”。 我感觉很多人都对函数柯里化(Currying)和偏函数应用(Partial Application)之间的区别搞不清楚,尤其是在相似的上下文环境中它们同时出现的时候。 偏函数解决这样的问题:如果我们有函数是多个参数的,我们希望能固定其中某几个参数的值。 几乎所有编程语言中都有非常明显的偏函数应用。在C语言中: int
Albert陈凯
2018/04/04
2.1K0
seekp()和seekg()函数简单的应用
#include<iostream> #include<fstream> using namespace std; class Stu { public: char name[10]; int id; Stu() { strcpy_s(name, “Z”); id = 0; } Stu(char *n, int i) { strcpy_s(name, n); id = i; } }; int main() { ofstream out1; out1.open(“d.dat”, ios::binary); Stu s1[3]; s1[0] = { “A”, 10 }; s1[1] = { “B”, 20 }; s1[2] = { “C”, 30 };
全栈程序员站长
2022/08/24
3040
除了foreach 和 for,数组的一些遍历函数,也非常高效
日常开发中,也不能总用foreach 和 for,尤其数组的一些遍历函数,非常高效。
Bolton
2023/06/02
3080
string 之 strchr函数 和 strstr函数(BF算法和KMP算法的应用)
Author: bakari  Date: 2012/8/9 继上篇。。。。。 下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”系列述之。 strchr函数:求字符在字符串中所在的位置 strstr函数:求子串在主串中的起始位置(用的字符串的模式匹配算法) 1 char * Mystrchr(const char *str, char c); //c第一次出现的位置 2 //BF algorithm 3 int Mystrstr_BF(char *mainStr
Linux云计算网络
2018/01/10
1.3K0
string 之 strchr函数 和 strstr函数(BF算法和KMP算法的应用)
Oracle应用之nvl函数和nvl2函数
nvl函数 nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。
SmileNicky
2022/05/07
8770
js中构造函数和普通函数的区别_函数声明和函数定义
b.构造函数的调用方式:需要使用new关键字来调用 new Person();
全栈程序员站长
2022/10/04
3.2K0
js中构造函数和普通函数的区别_函数声明和函数定义
匿名函数的应用
Python使用匿名函数来减少函数名冲突,如何在匿名函数中不写return返回值前提下来表达结果。
算法与编程之美
2023/10/25
1560
匿名函数的应用
Excel函数应用之逻辑函数
1.如果所有参数值均为逻辑“真(TRUE)”,则返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。
数据山谷
2020/12/09
9300
js匿名函数和命名函数_javascript中的函数
匿名函数在iframe里定义,而在“容器”页面执行,而$(“#map_workspace”)对象很明显在“容器”页面上,但偏偏,没有获得我们预期的结果。改为:
全栈程序员站长
2022/09/27
2.8K0
pandas的iterrows函数和groupby函数
iterrows() 是在DataFrame中的行进行迭代的一个生成器,它返回每行的索引及一个包含行本身的对象。
润森
2022/09/22
3.2K0
pandas的iterrows函数和groupby函数
strcpy函数和strncpy函数的区别
strcpy函数和strncpy函数的原型介绍在我的另一篇文章中介绍了,见strcpy,strncpy,strlen等函数原型 strcpy:字串复制   原型:char *strcpy(char *dest, char *src);   功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。   说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。   返回指向dest的指针。   注意:当src串长度>dest串长度时,程序仍会将整个src
猿人谷
2018/01/17
3.2K0
python 函数应用
#函数的参数就是个变量 #定义函数的时候,使用关键字参数,可以指定默认值 def hello(name='reboot',age=1):     return 'hello %s,your age is %s' %(name,age) print hello('reboot',3) print hello(3,'reboot') #print hello(age=3,name='reboot') print hello('reboot') def f(n):     count=1     for i in
py3study
2020/01/10
5550
JavaScript 函数节流和函数去抖应用场景辨析
函数节流和去抖的出现场景,一般都伴随着客户端 DOM 的事件监听。举个例子,实现一个原生的拖拽功能(不能用 H5 Drag&Drop API),需要一路监听 mousemove 事件,在回调中获取元素当前位置,然后重置 dom 的位置(样式改变)。如果我们不加以控制,每移动一定像素而触发的回调数量是会非常惊人的,回调中又伴随着 DOM 操作,继而引发浏览器的重排与重绘,性能差的浏览器可能就会直接假死,这样的用户体验是非常糟糕的。我们需要做的是降低触发回调的频率,比如让它 500ms 触发一次,或者 200m
吴裕超
2018/03/01
8990
vlookup函数应用
第三步 使用vlookup '=VLOOKUP(A1,A\(1:\)A19,1,0)'
hankleo
2020/09/16
8020
vlookup函数应用
普通函数和箭头函数的区别
箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深…
全栈程序员站长
2022/09/07
8660
Python的内置函数和匿名函数
截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。
星陨1357
2023/03/14
1.2K0
matlab的length函数和size函数
在matlab中length函数和size函数都是用来显示矩阵长度的函数。二者的区别为:
全栈程序员站长
2022/08/15
2.1K0
普通函数和箭头函数的区别
MDN的描述是箭头函数不会创建自己的this他只会从自己的作用域链的上一层继承this,这里我们可以理解为this指向外层第一个普通函数(如果没有,则指向全局对象(可通过globalThis访问));而普通函数中this指向其调用者。
用户10562852
2023/05/12
3760
普通函数和箭头函数的区别
Vue之render渲染函数和JSX的应用
我们需要createElement方法,就会想到可以编写个函数组件,将createElement方法传递出来
TimothyJia
2019/11/12
9160

相似问题

理解andThen()函数

120

无法使用andThen内联部分应用函数

12

Intellij在引用函数::andThen时无法解析“andThen”函数接口方法

15

Java8函数- compose和andThen

80

isDefinedAt与orElse和andThen scala部分函数

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文