1,java
@FunctionalInterface
public interface Supplier<T> {编程
2, T get();并发
3,app
Supplier<Apple> c1 = Apple::new
Apple a1 = c1.get();函数
1,优化
@FunctionalInterface
public interface Consumer<T> {blog
2,void accept(T t);接口
3,主要用来输出的ip
1,public interface Function<T, R> {资源
2,T apply(F input);
3,主要是用来转换东西的
4,函数复合,
1,充当一个参数化的返回Boolean比较方法
2,public interface Predicate<T> {
3,boolean test(T t);
4,能动态替换返回boolean的函数
5,基本类型装箱问题,
DoublePredicate
boolean test(double value);//有对应的原始类型特化接口
6,谓词复合,优先级从左到右a.or(b).and(c) == (a || b )&& c
1,
2,
3,
4,基本lambda语法
5,基本用法
6,在面向资源编程的lambda,不须要重复打开资源和关闭资源
7,lambda也有匿名函数的问题
8,方法引用
9,比较器复合
1,更加简单的利用多cpu
2,基本概念
6,查找和匹配
.noneMatch(d -> d.getCalories() >= 1000);
7,归约
最大最小值:Optional min = numbers.stream().reduce(Integer::min);
8,并发的有状态和无状态
9,优化自动装箱,
IntStream intStream = menu.stream().mapToInt(Dish::getCalories)
Stream<Integer> stream = intStream.boxed();
10,小结
11,collect
1,default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
能够添加默认实现
2,在 java8 中的接口中不只增长了默认方法,还增长了静态方法。使用方式接口名.方法名。
3,
@FunctionalInterface
public interface Runnable {代表是个函数接口
1,策略模式,相似predicate替换策略
2,模板方法,
3,观察者模式,注册的时候写上方法
4,责任链模式,在注册的时候像观察者模式差很少
5,传统简单工厂,用map和supplier