java8 中内置的四大核心函数接口
*
* Consumer<T> :消费型接口
* void accept(T t)
* Supplier<T> :供给型接口
* T get()
*
* Function<T,R>:函数型接口
* R apply(T t)
* Predicate<T> :断言型接口
* boolean test(T t)
package airycode_java8.nice4;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier; /**
*
* java8 中内置的四大核心函数接口
*
* Consumer<T> :消费型接口
* void accept(T t)
* Supplier<T> :供给型接口
* T get()
*
* Function<T,R>:函数型接口
* R apply(T t)
* Predicate<T> :断言型接口
* boolean test(T t)
* Created by admin on 2019/1/2.
*/
public class TestLambda { @Test
public void test1(){
happy(10000,(m)-> System.out.println("大保健,每次消费"+m));
} @Test
public void test2(){
getNumList(10,()-> (int)(Math.random()*100));
} //函数型接口
@Test
public void test3(){ String result = handler("aa", (str) -> str.toUpperCase());
System.out.println(result); } //断言型接口
@Test
public void test4(){ List<String> list = Arrays.asList("Hello","AA","CCCC");
List<String> resultList = filterStr(list, (str) -> str.length() > 3);
for (String str:resultList) {
System.out.println(str);
} } //需求:我要将满足条件的字符串放入集合中
public List<String> filterStr(List<String> list, Predicate<String> pre){
List<String> result = new ArrayList<>();
for (String str:list) {
if (pre.test(str)) {
result.add(str);
}
}
return result;
} //需求:用于处理字符串
public String handler(String string, Function<String,String> fun){
return fun.apply(string);
} public void happy(double money, Consumer<Double> consumer){
consumer.accept(money);
} public List<Integer> getNumList(int num, Supplier<Integer> supplier){
List<Integer> result = new ArrayList<>();
for (int i=0;i<num;i++) {
Integer n = supplier.get();
result.add(n);
}
return result;
} }

  

JAVA8函数式接口的更多相关文章

  1. java代码之美(14)---Java8 函数式接口

    Java8 函数式接口 之前写了有关JDK8的Lambda表达式:java代码之美(1)---Java8 Lambda 函数式接口可以理解就是为Lambda服务的,它们组合在一起可以让你的代码看去更加 ...

  2. java代码(14) --Java8函数式接口

    Java8函数式接口 之前有关JDK8的Lambda表达式 Java代码(1)--Java8 Lambda 函数式接口可以理解就是为Lambda服务的,它们组合在一起可以让你的代码看去更加简洁 一.概 ...

  3. Java8 函数式接口-Functional Interface

    目录 函数式接口: JDK 8之前已有的函数式接口: 新定义的函数式接口: 函数式接口中可以额外定义多个Object的public方法一样抽象方法: 声明异常: 静态方法: 默认方法 泛型及继承关系 ...

  4. Java8函数式接口和Lambda表达式

    两者关系: Lambda表达式就是函数式接口(FunctionalInterface)实现的快捷方式,它相当于函数式接口实现的实例,因为在方法中可以使用Object作为参数,所以把Lambda表达式作 ...

  5. java8 函数式接口——Function/Predict/Supplier/Consumer

    Function 我们知道Java8的最大特性就是函数式接口.所有标注了@FunctionalInterface注解的接口都是函数式接口,具体来说,所有标注了该注解的接口都将能用在lambda表达式上 ...

  6. java8函数式接口(Functional Interface)

    介绍 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口. 函数式接口可以被隐式转换为 lambda 表达式(箭头函数). 函数式接口代 ...

  7. Java8 函数式接口 @FunctionalInterface以及常用Consumer<T>、Supplier<T>、Function<T, R>、Predicate<T>总结

    首先看看什么是Lambda 表达式 Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码(将代码像数据一样传递):最简单的Lambda表达式可由逗号分隔的参数列表.-> ...

  8. [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口

    函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...

  9. Java8函数式接口/Lambda表达式/接口默认方法/接口静态方法/接口冲突方法重写/lambda表达式指定泛型类型等

    一:函数式接口 1.函数式接口的概念就是此接口必须有且只能有一个抽象方法,可以通过@FunctionalInterface来显示规定(类似@Override),但是没有此注解的但是只有一个抽象方法的接 ...

  10. java8函数式接口小例子

    // Function<T, R> -T作为输入,返回的R作为输出 Function<String,String> function = (x) -> {System.o ...

随机推荐

  1. linux使用rz、sz快速上传、下载文件

    平时都使用ftp工具进行文件的上传下载操作,针对于小文件的简单传输来说,有下面好的方法: 首先安装rz.sz工具: #yum install lrzsz 上传文件:rz 下载文件:sz 上传文件在sh ...

  2. AngularJS 常用的功能

    第一 迭代输出之ng-repeat标签ng-repeat让table ul ol等标签和js里的数组完美结合 例: <ul><li ng-repeat="person in ...

  3. 口语详解|为什么“how to say”是错的?

    你有没有说过一些印象深刻的中式英语呢?为什么有的英语会被称之为中式英语想必你大概知道,但是如何把中式英语使用正确你知道吗?今天,跟着小编来看看吧.By the way,今天的主角是"how ...

  4. [daily][samba] smbclient使用

    用的也不是太明白,反正凑合用吧. 在用之前,只得到了两个信息,1:ip 192.168.30.9.    2:可以免密登录. 1.  用这个命令看一看,主要是找到这个目录:Anonymous ┬─[t ...

  5. [daily][archlinux] 本地字符乱码, 无法显示中文

    一: 突然有一天,Konsole里边看见的中文文件名的文件,就变成了乱码.thunderbird存到本地的附件,文件名也变成了乱码. 在X下查看locale,内容如下: 手动设置了之后也不对. 但是在 ...

  6. hadoop 学习笔记2

    ============Hive vs Hadoop============== Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Ha ...

  7. elastic search范围查询

    queryBuilder.must(QueryBuilders.rangeQuery("pt_longitude").from(minLongitude).to(maxLongit ...

  8. Web Deploy远程部署配置图解

    原文链接:https://jingyan.baidu.com/album/642c9d34e614de644a46f783.html

  9. 洛谷P3242 接水果 [HNOI2015] 整体二分

    正解:整体二分+树状数组 解题报告: 传送门! 题目还是大概解释下?虽然其实是看得懂的来着,,, 大概就是说给一棵树.给定一些询问,每个询问都是说在两个点之间的路径上的子路径的第k大是什么 然后看到这 ...

  10. EXPLAIN执行计划中要重点关注哪些要素(叶金荣)

    原文:http://mp.weixin.qq.com/s/CDKN_nPcIjzA_U5-xwAE5w 导读 EXPLAIN的结果中,有哪些关键信息值得注意呢? MySQL的EXPLAIN当然和ORA ...