Java8的四大核心函数式接口
来源:互联网 发布:淘宝上井江茶油造假 编辑:程序博客网 时间:2024/06/08 08:34
前言
在学习一段时间后会不会有这样的疑问—难道我要用Lambda表达式的时候总要自己写函数式接口吗?
当然不是这样了,Java8里面提供了四大核心的函数式供我们使用!
四大核心函数式接口
测试代码
@Test public void testCoreInter(){ /** * @name 消费型接口 * @use Consumer<T> * @param T 传入参数 * @fun 接受一个参数 无返回值 * */ Consumer<String> con=(str)->System.out.println(str); con.accept("我是消费型接口!"); /** * @name 供给型接口 * @use Supplier<R> * @param R 返回值类型 * @fun 无参数 有返回值 * */ Supplier<Date> supp=()-> new Date(); Date date=supp.get(); System.out.println("当前时间:"+date); /** * @name 函数型接口 * @use Function<T,R> * @param T 传入参数 * @return R 返回值类型 * @fun 接受一个参数 有返回值 * */ Function<String, String> fun=(str)->"hello,"+str; String str=fun.apply("张俊强"); System.out.println(str); /** * @name 断定型接口 * @use Predicate<T> * @param T 传入参数 * @return Boolean 返回一个Boolean型值 * @fun 接受一个参数 返回Boolean型值 * */ Predicate<Integer> pre=(num)->num>0; Boolean flag=pre.test(10); System.out.println(flag); }
输出结果
我是消费型接口!当前时间:Wed Jun 21 22:08:19 CST 2017hello,张俊强true
拓展函数式接口
如果你觉得这几个还是不够用,那么可以参考下面的一些拓展的接口,其用法与上面大同小异:
代表了一个接受两个输入参数的操作,并且不返回任何结果
2BiFunction<T,U,R>代表了一个接受两个输入参数的方法,并且返回一个结果
3BinaryOperator<T>代表了一个作用于于两个同类型操作符的操作,并且返回了操作符同类型的结果
4BiPredicate<T,U>代表了一个两个参数的boolean值方法
5BooleanSupplier代表了boolean值结果的提供方
6Consumer<T>代表了接受一个输入参数并且无返回的操作
7DoubleBinaryOperator代表了作用于两个double值操作符的操作,并且返回了一个double值的结果。
8DoubleConsumer代表一个接受double值参数的操作,并且不返回结果。
9DoubleFunction<R>代表接受一个double值参数的方法,并且返回结果
10DoublePredicate代表一个拥有double值参数的boolean值方法
11DoubleSupplier代表一个double值结构的提供方
12DoubleToIntFunction接受一个double类型输入,返回一个int类型结果。
13DoubleToLongFunction接受一个double类型输入,返回一个long类型结果
14DoubleUnaryOperator接受一个参数同为类型double,返回值类型也为double 。
15Function<T,R>接受一个输入参数,返回一个结果。
16IntBinaryOperator接受两个参数同为类型int,返回值类型也为int 。
17IntConsumer接受一个int类型的输入参数,无返回值 。
18IntFunction<R>接受一个int类型输入参数,返回一个结果 。
19IntPredicate:接受一个int输入参数,返回一个布尔值的结果。
20IntSupplier无参数,返回一个int类型结果。
21IntToDoubleFunction接受一个int类型输入,返回一个double类型结果 。
22IntToLongFunction接受一个int类型输入,返回一个long类型结果。
23IntUnaryOperator接受一个参数同为类型int,返回值类型也为int 。
24LongBinaryOperator接受两个参数同为类型long,返回值类型也为long。
25LongConsumer接受一个long类型的输入参数,无返回值。
26LongFunction<R>接受一个long类型输入参数,返回一个结果。
27LongPredicateR接受一个long输入参数,返回一个布尔值类型结果。
28LongSupplier无参数,返回一个结果long类型的值。
29LongToDoubleFunction接受一个long类型输入,返回一个double类型结果。
30LongToIntFunction接受一个long类型输入,返回一个int类型结果。
31LongUnaryOperator接受一个参数同为类型long,返回值类型也为long。
32ObjDoubleConsumer<T>接受一个object类型和一个double类型的输入参数,无返回值。
33ObjIntConsumer<T>接受一个object类型和一个int类型的输入参数,无返回值。
34ObjLongConsumer<T>接受一个object类型和一个long类型的输入参数,无返回值。
35Predicate<T>接受一个输入参数,返回一个布尔值结果。
36Supplier<T>无参数,返回一个结果。
37ToDoubleBiFunction<T,U>接受两个输入参数,返回一个double类型结果
38ToDoubleFunction<T>接受一个输入参数,返回一个double类型结果
39ToIntBiFunction<T,U>接受两个输入参数,返回一个int类型结果。
40ToIntFunction<T>接受一个输入参数,返回一个int类型结果。
41ToLongBiFunction<T,U>接受两个输入参数,返回一个long类型结果。
42ToLongFunction<T>接受一个输入参数,返回一个long类型结果。
43UnaryOperator<T>接受一个参数为类型T,返回值类型也为T。
- Java8的四大核心函数式接口
- Java8的四大核心函数式接口
- Java8中内置的四大核心函数式接口
- Java8新特性_四大内置核心函数式接口
- Java8新特性(内置的核心函数式接口)
- java8 四个核心函数式接口
- JDK8-四大核心函数式接口(三)
- 四大内置核心函数式接口
- Java8:函数式接口
- 第二十三讲 JDK8的foreach与Consumer接口、四大核心函数式接口、Stream接口、队列与栈
- java8提供的简单函数式接口
- Java8自定义带泛型的函数式接口
- java8的内置函数式接口总结
- 开始Java8之旅(四) --四大函数接口
- java8内置四大函数
- java8内置函数式接口
- JAVA8 函数式接口介绍
- Java8内置函数式接口
- 实现文本域输入字数的限制
- pcl::ExtractPolygonalPrismData类
- keras2 predict和fit_generator的坑
- 应用expect的自动应答
- Add to List 313. Super Ugly Number
- Java8的四大核心函数式接口
- 第一课、java开发环境的安装
- 随机一致性检测RANSAC
- 位操作
- Eclipse用tomcat有事出现的问题
- 开课第一天
- 线性表-顺序表
- 雅礼集训Day4
- CMD一键获取 所有连接过的WIFI密码