//常用函数式接口
final int num = ;
//num++;
//第一个为传入参数的类型;第二个为返回数据的类型
Function<int[],String> function = (from) -> {
String value=null;
if(from[]>num)
value="gt num";
else
value="lt num";
return value;
};
int[] arr= {,,,,};
System.out.println(function.apply(arr));//6 //谓词接口用来进行条件判断,它会传入一个参数,判断这个参数是否满足某个条件,并进行布尔返回。
Predicate<Integer> pre =(a) -> a==num;
System.out.println(pre.test()); //单元操作接口对传入的参数进行转化,并且会返回指定数据类型的结果。对于这里的“单元”指的是:操作参数只有一个。
IntUnaryOperator intUnaryOperator = (in) -> (in+)>? :;
System.out.println(intUnaryOperator.applyAsInt()); //二元操作和单元操作的区别是,二元操作可以接受2个参数。通常,它进行的是两个元素的运算。两个传入参数和返回值的数据类型,也都是相同的。
IntBinaryOperator intBinaryOperator = (left,right) -> left+right;
System.out.println(intBinaryOperator.applyAsInt(, )); //消费者接口和函数接口的不同之处在于,消费者是“无声的”,也就是他们会默默地把传入的数据“吃掉”,而不做任何返回。
Consumer<String> consumer = (t)-> {}; //与之相反的是工厂接口(或者可以翻译为供应商接口),它门只做产出而不进行任何消费,通常可以把他们当成一个工厂。
Supplier<String> supplier=()->{return "get..";};
supplier.get(); //使用自定义的函数式接口
MyInterface<Integer, Integer, String> my=(a,b)->{
String result=null;
if(a+b<) {
result = MyInterface.BUJIGE;
}
if(a+b>&&a+b<) {
result = MyInterface.JIGE;
}
return result;
};
System.out.println(my.test(,));

Arrays.stream(new Integer[] {1,2,3,4}).map((Integer x)-> x*2).filter((x)->x>3).forEach(System.out::print);
          System.out.println("---");
          Arrays.stream(new Integer[] {1,2,3,4}).filter((x)->x>2).peek((s)->System.out.println(s));

自定义接口

@FunctionalInterface
public interface MyInterface<A,B,C> {
final String JIGE="及格";
final String YOUXIU="优秀";
final String LIANGHAO="良好";
final String BUJIGE="不及格";
//A B为传入的数据类型,C为返回的数据类型
public C test(A a,B b);
}

java1.8常用的函数式接口的更多相关文章

  1. 死磕Lambda表达式(四):常用的函数式接口

    失去人性,失去很多:失去兽性,失去一切.--<三体> 在Java8支持Lambda表达式以后,为了满足Lambda表达式的一些典型使用场景,JDK为我们提供了大量常用的函数式接口.它们主要 ...

  2. 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen

    常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...

  3. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  4. 常用的函数式接口_Consumer接口和常用的函数式接口_Consumer接口的默认方法andThen

    Consumer接口 java,util.function.Consumer接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定 抽象方法:accept C ...

  5. 常用的函数式接口_Supplier和常用的函数式接口Supplier接口练习_求数组中元素最大值

    Supplier接口 package com.yang.Test.SupplierStudy; import java.util.function.Supplier; /** * 常用的函数式接口 * ...

  6. 常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and

    package com.yang.Test.PredicateStudy; import java.util.function.Predicate; /** * java.util.function. ...

  7. Java 8 中常用的函数式接口

    函数式接口 函数描述符 Predicate<T> T->boolean Consumer<T> T->void Function<T, R> T-> ...

  8. 常用的函数式接口_Predicate接口_默认方法and和Predicate接口练习_集合接口筛选

    默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Preadicate条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用d ...

  9. 常用的函数式接口_Function接口练习_自定义函数模型拼接

    package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * 练习:自定义函数模型拼接 * 题目: * ...

随机推荐

  1. ubuntu 12.04 LTS 如何使用更快的更新源

    装好ubuntu系统后的第一见事就是替换自带的更新源,原因是系统自带的源有些在中国访问不了,可以访问的速度又特别慢.幸好国内的一些公司和大学提供了速度不错的更新源.下面介绍如何使用更快的更新源 方法/ ...

  2. python 替换 文件夹下的 文件名称 及 文件内容

    示例效果: 1.替换某文件夹下的 文件夹及子文件夹 的名称 由OldStrDir 变为 NewStrDir: 2.替换某文件夹下的 文件夹及子文件夹 下 所有的文件的名称 由OldStrFile 变为 ...

  3. No.007:Reverse Integer

    问题: Reverse digits of an integer.Example1:x = 123, return 321Example2:x = -123, return -321 官方难度: Ea ...

  4. 【JAVA并发编程实战】4、CountDownLatch

    这是一个计数锁,说白了,就是当你上锁的时候,只有计数减少到0的时候,才会释放锁 package cn.xf.cp.ch05; public class TaskRunable implements R ...

  5. BuilderParttern(建造者模式)

    /** * 建造者模式 * 主要用于构造复杂的对象 * 在优朋播放器就是采用建造者构建的,可以说比较有心得吧 * @author TMAC-J * */ public class BuilderPat ...

  6. Elasticsearch初步使用(安装、Head配置、分词器配置)

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 1.ElasticSearch简单说明 a.ElasticSearch是一个基于Lu ...

  7. 文章转载利用border、transparent实现微风

    微风效果预览 微风源码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  8. jquery右下角自动弹出关闭层

    效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/36.htm 右下角弹出层后,会在一定时间后自动隐藏.第一版本:http://www.cnblogs.com/ ...

  9. 关于float和margin

    1.同级存在浮动,如mid的前面left浮动(mid不浮动),margin则相对于父元素,mid的margin-left不是相对于left,而是相对于con(可以想象,如果left不浮动,则mid和l ...

  10. 转发:Chrome 控制台console的用法

    大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对co ...