链式编程与流式计算基础


链式编程与流式计算基础

“集合讲的是数据,流讲的是计算”

前言

有关链式编程与流式计算的具体原理会写在Scala中,在这里以Java中的实现为主。

实现

Lombok与链式编程的简单Demo

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
class User {
    private int id;
    private String userName;
    private int age;
}

public class StreamDemo {
    public static void main(String[] args) {
        new User().setUserName("test").setId(12).setAge(12);
    }
}

四大函数接口

在java.util.function中定义了以下四大函数式接口

  1. Consumer 输入T,无返回值
  2. Supplier 无输入值,返回T
  3. Function<T, R> 输入T,返回R
  4. Predicate 输入T,返回Booleanf

在java.util.steam中书写了如下规则:

     int sum = widgets.stream()
                      .filter(b -> b.getColor() == RED)
                      .mapToInt(b -> b.getWeight())
                      .sum()

filter,map方法

list.stream().filter(u -> {
    return u.getId() % 2 == 0;
});

//collect(collectors.tolist())将collect再次转回list
list.stream.map(x -> {return x * 2;}).collect(collectors.tolist());
list.stream().filter(u -> {
    return u.getId() % 2 == 0;
}).filter(t -> {
    return t.getAge() > 24;
}).map(m -> {
    return m.getUserName().toUpperCase();
}).sorted((o1,o1) -> {
    return o2.compareTo(o1);
}).count.foreach(System.out::println);

文章作者: Dale Mo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Dale Mo !
 上一篇
NIO NIO
NIONIO与BIO BIO:Blocking IO,阻塞模型,适用于连接数目较小且固定的架构 为每个连接创建一个线程 NIO:Non-Blocking IO,同步非阻塞,适用于连接数目较多且连接比较短的架构 专有一个或多个线程服务于众多
2020-09-08
下一篇 
Java锁综述 Java锁综述
不可不说的Java“锁”事本文章转自美团技术平台,原文链接:https://tech.meituan.com/2018/11/15/java-lock.html 前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出
2020-09-06
  目录