Java8内置的四大核心函数式接口
- package java_8;
- 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.Predicate;
- import java.util.function.Supplier;
- import java.util.function.Function;
- /**
- * Java8内置的四大核心函数式接口
- * <p>
- * Consumer<T>: 消费型接口
- * void accept(T t);
- *
- * Supplier<T>:供给型接口
- * T get();
- *
- * Function<T, R>: 函数型接口
- * R apply(T t);
- *
- * Predicate<T>: 断言型接口:
- * boolean test(T t);
- *
- *Java8中还提供了其他函数式接口
- */
- public class TestLambda4 {
- //predicate<T> 断言型接口:
- @Test
- public void test4(){
- List<String> list = Arrays.asList("Hello","Lambda","Go","java");
- list = filterStr(list, s->s.contains("o"));
- list.forEach(System.out::println);
- }
- //需求:将满足条件的字符串添加到集合中
- public List<String> filterStr(List<String> list, Predicate<String> predicate) {
- List<String> stringList = new ArrayList<>();
- for (String str : list) {
- if (predicate.test(str))
- stringList.add(str);
- }
- return stringList;
- }
- //-----------------------------------------------------------
- //Function<T,R>函数型接口
- @Test
- public void test3() {
- String str = strHandler("huangyichun", s -> s.toUpperCase());
- System.out.println(str);
- }
- //需求用于处理字符串
- public String strHandler(String str, Function<String, String> fun) {
- return fun.apply(str);
- }
- //-------------------------------------------------
- //Supplier<T>供给型接口:
- @Test
- public void test2() {
- List<Integer> list = getNumList(10, () -> (int) (Math.random() * 100));
- list.forEach(System.out::println);
- }
- //需求:产生指定个整数,并放入集合中
- public List<Integer> getNumList(int num, Supplier<Integer> sup) {
- List<Integer> list = new ArrayList<>();
- for (int i = 0; i < num; i++) {
- list.add(sup.get());
- }
- return list;
- }
- //-----------------------------------------------------------
- //Consumer<T> 消费型接口
- @Test
- public void test1() {
- happy(10000, m -> System.out.println(m));
- }
- public void happy(double money, Consumer<Double> con) {
- con.accept(money);
- }
- }
Java8内置的四大核心函数式接口的更多相关文章
- JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...
- Java8新特性 - Java内置的四大核心函数式接口
Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...
- java 8内置的四大核心函数式接口
Consumer<T> : 消费性接口 返回值 void accept(T t); public void happy(double money, Consumer<Double& ...
- java8 四大核心函数式接口Function、Consumer、Supplier、Predicate(转载)
Function<T, R> T:入参类型,R:出参类型 调用方法:R apply(T t); 定义函数示例:Function<Integer, Integer> func = ...
- Java8 内置的函数式接口
1.Java8 内置的四大核心函数式接口 (1)Consumer<T> : 消费型接口 void accept(T t); (2)Supplier<T> : 供 ...
- java8新特性——四大内置核心函数式接口
在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...
- Java8内置的函数式编程接口应用场景和方式
首先,我们先定义一个函数式编程接口 @FunctionalInterface public interface BooleanFunctionalInterface<T> { boolea ...
- Java8新特性_四大内置核心函数式接口
Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...
- java8的4大核心函数式接口
//java8的4大核心函数式接口//1.Consumer<T>:消费性接口//需求:public void happy(double money, Consumer<Double& ...
随机推荐
- 利用机器学习进行DNS隐蔽通道检测——数据收集,利用iodine进行DNS隐蔽通道样本收集
我们在使用机器学习做DNS隐蔽通道检测的过程中,不得不面临样本收集的问题,没办法,机器学习没有样本真是“巧妇难为无米之炊”啊! 本文简单介绍了DNS隐蔽通道传输工具iodine,并介绍如何从iodin ...
- 循环引用的weak和assgin
__weak 当对象销毁后weakSelf指向的地址为nil __unsafe_unretained 挡圈对象销毁后,weakSelf执行的地址为不变,而地址对应对象已经销毁,再次访问该对象就崩溃,相 ...
- BZOJ 1806 DP
思路: f[i][a][b][c][d] 表示在第i天 昨天1矿吃的是a 前天1矿吃的是b 昨天2矿吃的是c 前天2矿吃的是d 的最优解 暴力转移 哦 需要优化一下空间- 变成i%2 就好了 //By ...
- caffe下python环境的编译
安装python所需的依赖包 (1)sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-n ...
- Windows下Java JDK安装和环境变量配置
[Java攻城狮学习路线](http://www.cnblogs.com/apollospotatolikett/p/8665123.html 1.JDK下载 下载地址:http://www.orac ...
- 1到32 数字正则 还有IP的
正则是按位解析匹配的,所以[1-32]是不行的. 解析: 1.1-32,包含1位数(1-9)和2位数(10-32) 2.10-32必须切割,10-19和20-29形式一样,得到[12][0-9],30 ...
- Array.prototype.slice.call(arguments) 通俗法理解
Array.prototype.slice.call(arguments,num) 能将具有length属性的对象转成数组. slice 从字面上的意思可以理解为截取数组的一部分. call 从字 ...
- log4j:WARN Please initialize the log4j system properly.解决方案
在使用quarz任务调度框架时的错误,实际上这个问题很常见,并不影响程序的使用,只是缺少日志输出,完整错误信息: log4j:WARN No appenders could be found for ...
- Android7.0打开sdacrd图片问题
1.点击item,通过intent打开指定路径的图片. 2.测试6.0,5.0正常运行代码: File file=new File(item.address): Intent intent = new ...
- JSON是什么?为JavaScript准备的数据格式
JSON是什么?为JavaScript准备的数据格式 还不了解JSON是什么?看了下面这篇文章,您对JSON是什么应该能够有了一个比较清晰的概念. JSON 即 JavaScript. Object ...