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& ...
随机推荐
- Tool-DB:Navicat
ylbtech-Tool-DB:Navicat Navicat是一套快速.可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小企业的 ...
- Redis学习笔记(四) 基本命令:String操作
原文链接:http://doc.redisfans.com/string/index.html append key value 将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的 ...
- Spark SQL 编程API入门系列之Spark SQL的作用与使用方式
不多说,直接上干货! Spark程序中使用SparkSQL 轻松读取数据并使用SQL 查询,同时还能把这一过程和普通的Python/Java/Scala 程序代码结合在一起. CLI---Spark ...
- hive2.0函数大全
Hive2.0函数大全(中文版) 摘要 Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数. 目录 数学函数 ...
- JQuery 登录窗口的布局
<!-- Button trigger modal --><button type="button" class="btn btn-primary bt ...
- windows 下安装 php-memcached 扩展
通过 phpinfo()观察 3 个参数,即 php 版本, ts/nts, vc6/vc9 根据上步中的参数,到http://pecl.php.net/ 下载匹配的 memcache.dll 再次观 ...
- WCF之操作重载
服务契约的方法重载,会在装载宿主时,抛出异常. 解决是在操作契约上Name设置为不同值,但是生成的代理会把Name的名称作为方法的名称,不过我们可以手动的修改代理类,使得方法名与服务声明的名称一样. ...
- Eclipse键盘输出文字,显示到屏幕上方法
方法1 /*标准的思路: * 分析: * 1.来源 * 键盘:System.in * 2.目的地 * 屏幕:System.out * 文件:FIle * 3.分别分析:源,目的地流的类型(字符,字节) ...
- 常用的Linux命令汇总
1. 进入某个文件夹 2.查找某个文件或内容 3.查看文件内容 4.kill进程 启动tomcat 停止tomcat 1. 进入某个文件夹 比如有个目录,路径是: /home/user1/doc ...
- 树莓派使用samba
tips:打算利用树莓派做局域网内的文件共享服务器, 实测发现树莓派挂载一个硬盘比较合适,挂载多个硬盘则会出现供电不足而挂载失败, 即使利用外置供电接入多个硬盘实测效果也不好,树莓派在IO上无法处理多 ...