一定要用的lambda
为了熟练使用和记忆,按照这个规则记忆就可以。
函数式接口四大类型:
1.消费型
给一个入参,没有返回值
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
default Consumer<T> andThen(Consumer<? super T> after) {
Objects.requireNonNull(after);
return (T t) -> { accept(t); after.accept(t); };
}
}
扩展:
- BiConsumer<T, U> 消费两个值
- DoubleConsumer 参数类型为double
- IntConsumer 参数类型为int
- LongConsumer 参数类型为long
- ObjDoubleConsumer
第一个参数为T,第二个为double - ObjIntConsumer
第一个参数为T,第二个为int - ObjLongConsumer
第一个参数为T,第二个为long
2.供给型
没有入参,有一个返回值
@FunctionalInterface
public interface Supplier<T> {
/**
* Gets a result.
*
* @return a result
*/
T get();
}
扩展:
- BooleanSupplier 返回boolean
- DoubleSupplier 返回 double
- IntSupplier 返回 int
- LongSupplier 返回 long
3.判断型
返回结果是布尔值
@FunctionalInterface
public interface Predicate<T> {
boolean test(T t);
}
扩展:
- BiPredicate<T, U> 两个入参
- DoublePredicate 一个double类型的入参
- IntPredicate 一个int类型的参数
- LongPredicate 一个long类型的参数
4.功能型
一个入参一个返回值。可以内部做逻辑,也是用的最多的。
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);
}
扩展:
- UnaryOperator
extends Function<T, T> 只有一个参数的,入参和返回都是同样的类型
例如:- LongUnaryOperator、
- IntUnaryOperator、
- DoubleUnaryOperator
- BiFunction<T, U, R> 两个入参,一个返回值
- DoubleFunction
一个double类型的入参,T返回类型 - IntFunction
- LongFunction
这些都是T类型的返回值,不同的入参类型 - 以下就是具体的类型:
- IntToDoubleFunction 入参int转double
- IntToLongFunction
- DoubleToLongFunction
- DoubleToIntFunction
- LongToIntFunction
- LongToDoubleFunction
这些都是具体的类型转换了
特例:BinaryOperator
本文来自博客园,作者:Eular,转载请注明原文链接:https://www.cnblogs.com/euler-blog/p/18680439
分类:
技术 / coding
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了