Java函数式编程(2):流式计算
您好,我是湘王,这是我的云海天,欢迎您来,欢迎您再来~
Lambda表达式虽然将接口作为代码块赋值给了变量,但如果仅仅只是Lambda表达式,还无法让Java由量变引起质变。真正让Lambda能够发挥出巨大威力的,就是流式计算。
所谓流式计算,就是让数据像在流水线上一样,从一道工序流转到下一道工序。就像这样:
如果把数据处理的方式比作流水线,那么Spark、Storm和Flink就是目前市面上头部的三家工厂。它们有各种各样的数据装配间(也就是各种处理数据的算子),将数据按照所需加工成型。所以,不懂流式计算根本就做不了大数据开发。上面那张图,如果换成流式计算的,就是这样:
Lambda表达式就变成了一个个的数据装配间。
还是以实际的代码例子来说明。假如有这样的代码:
/** * 雇员数据 * * @author 湘王 */ public class Employee { public enum Type { MANAGER, SELLER, OFFICER }; private String name; private String genger; private Integer age; private boolean married; private Type type; public Employee(final String name, final String genger, final Integer age, final boolean married, final Type type) { super(); this.name = name; this.genger = genger; this.age = age; this.married = married; this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGenger() { return genger; } public void setGenger(String genger) { this.genger = genger; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public boolean isMarried() { return married; } public void setMarried(boolean married) { this.married = married; } public Type getType() { return type; } public void setType(Type type) { this.type = type; } @Override public String toString() { return this.name + "(" + this.genger + ")-" + this.age; } }