java1.8常用的函数式接口
//常用函数式接口
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常用的函数式接口的更多相关文章
- 死磕Lambda表达式(四):常用的函数式接口
失去人性,失去很多:失去兽性,失去一切.--<三体> 在Java8支持Lambda表达式以后,为了满足Lambda表达式的一些典型使用场景,JDK为我们提供了大量常用的函数式接口.它们主要 ...
- 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen
常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...
- 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选
常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...
- 常用的函数式接口_Consumer接口和常用的函数式接口_Consumer接口的默认方法andThen
Consumer接口 java,util.function.Consumer接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定 抽象方法:accept C ...
- 常用的函数式接口_Supplier和常用的函数式接口Supplier接口练习_求数组中元素最大值
Supplier接口 package com.yang.Test.SupplierStudy; import java.util.function.Supplier; /** * 常用的函数式接口 * ...
- 常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and
package com.yang.Test.PredicateStudy; import java.util.function.Predicate; /** * java.util.function. ...
- Java 8 中常用的函数式接口
函数式接口 函数描述符 Predicate<T> T->boolean Consumer<T> T->void Function<T, R> T-> ...
- 常用的函数式接口_Predicate接口_默认方法and和Predicate接口练习_集合接口筛选
默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Preadicate条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用d ...
- 常用的函数式接口_Function接口练习_自定义函数模型拼接
package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * 练习:自定义函数模型拼接 * 题目: * ...
随机推荐
- HibernateUtil工具类
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.slf4j.Logger; ...
- JVM垃圾回收(GC)原理
一.基本垃圾回收算法 1.引用计数(Reference Counting) 比较古老的回收算法.原理是此对象有一个引用则增加一个引用计数,删除一个引用则较少一个引用计数.垃圾回收时,只回收引用计数为0 ...
- 从零开始学 Java - 数据库连接池的选择 Druid
我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...
- ASP.NET MVC搭建项目后台UI框架—2、菜单特效
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- CSS3动画属性Transform解读
无论你是前端还是设计师,相信你在网页二维空间上的操作早已经得心应手,JS处理时间线的动画也早已经 烂熟于胸.从今天开始,我跟大家分享一些“新”的东西,网页的第三个维度,以及纯CSS实现的动画.限于篇幅 ...
- 转发:Chrome 控制台console的用法
大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对co ...
- Emacs学习心得之 LaTeX编辑
目录 1. 前言 2. texlive的安装 3. AUCTEX的安装和配置 4. RefTEX的安装和配置 一.前言 本篇博文记录了Emacs下LaTeX编辑环境的搭建,参考一下文章: http:/ ...
- iOS歌词逐渐变色动画
实现歌词逐渐变色的动画,像卡拉OK一样可以根据时间进度来染色.效果如图: 因项目需求要实现一个类似歌词逐渐变色的效果,自己想来想去想不出来实现方案,还是得求助万能的google, 最终是找到了这篇 ...
- iOS UIPageViewController缺陷
为什么弃用UIPageViewController?问题1:设置UIPageViewController为UIPageViewControllerTransitionStyleScroll且调用set ...
- 理解 iOS 的内存管理
远古时代的故事 那些经历过手工管理内存(MRC)时代的人们,一定对 iOS 开发中的内存管理记忆犹新.那个时候大约是 2010 年,国内 iOS 开发刚刚兴起,tinyfool 大叔的大名已经如雷贯耳 ...