java 8内置的四大核心函数式接口
Consumer<T> : 消费性接口
返回值 void accept(T t);
public void happy(double money, Consumer<Double> con) {
con.accept(money);
}
@Test
public void test1() {
happy(1999.99, m -> System.out.println("吃饭花了" + m + "元"));
}
Supplier<T> :供给型接口
返回值 T get();
//产生特定个数整数,放在集合中
public List<Integer> getList(int num, Supplier<Integer> sp) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i < num; i++) {
Integer n = sp.get();
list.add(n);
}
return list;
} @Test
public void test2() {
List<Integer> list = getList(13, () -> (int) (Math.random() * 100));
for (Integer num : list
) {
System.out.println(num);
}
}
Function<T,R>函数式接口
返回值 R apply<T t>
public String strHandler(String str, Function<String, String> fun) {
return fun.apply(str);
}
@Test
public void test3() {
String s = strHandler("\t\t\t 人呢 ", t -> t.trim());
System.out.println(s); String s2 = strHandler(" 人呢123456 ", t -> t.trim().substring(2, 4));
System.out.println(s2);
}
Predicate<T> 断言型接口
返回值 boolean test(T t);
//需求将满足条件的字符串放进集合
public List<String> strList(List<String> list, Predicate<String> pre) {
List<String> list1 = new ArrayList<>();
for (String li : list
) {
if (pre.test(li)) {
list1.add(li);
}
}
return list1;
}
@Test
public void test4() {
List<String> list = Arrays.asList("123", "11", "小明上学", "ok");
List<String> stringList = strList(list, pr -> pr.length() > 2);
for (String s : stringList
) {
System.out.println(s);
}
}
java 8内置的四大核心函数式接口的更多相关文章
- Java8新特性 - Java内置的四大核心函数式接口
Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...
- JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...
- Java8内置的四大核心函数式接口
package java_8; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import j ...
- java8 四大核心函数式接口Function、Consumer、Supplier、Predicate(转载)
Function<T, R> T:入参类型,R:出参类型 调用方法:R apply(T t); 定义函数示例:Function<Integer, Integer> func = ...
- JAVA 8 主要新特性 ----------------(四)Lambda函数式接口
一.什么是函数式接口 只包含一个抽象方法的接口,称为函数式接口. 你可以通过 Lambda 表达式来创建该接口的对象.(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法 ...
- java8新特性——四大内置核心函数式接口
在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...
- java 并发——内置锁
坚持学习,总会有一些不一样的东西. 一.由单例模式引入 引用一下百度百科的定义-- 线程安全是多线程编程时的计算机程序代码中的一个概念.在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同 ...
- java script 内置对象
java script 内置对象 Date 日期对象 字符串对象 定义字符串的方法就是直接赋值 使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写,反之 toLo ...
- Java8新特性_四大内置核心函数式接口
Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...
随机推荐
- Shiro-JWT SpringBoot前后端分离权限认证的一种思路
JWT-Shiro 整合 JWT-与Shiro整合进行授权认证的大致思路 图示 大致思路 将登录验证从shiro中分离,自己结合JWT实现 用户登陆后请求认证服务器进行密码等身份信息确认,确认成功后 ...
- 日志挖掘针对DML语句
作用: 针对用户的误操作,比如更改数据错误,误删除表等,可以用日志挖掘的方式,跟踪哪个用户什么时候做的操作,并进行数据还原. 一.前期准备: 1.添加最小补充日志,能够记录到更详细的信息,为日志挖掘分 ...
- 技术实践:教你用Python搭建gRPC服务
摘要:gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf序列化协议开发,且支持众多开发语言. 本文分享自华为云社区& ...
- Spring Boot动态权限变更实现的整体方案
1.前言 在Web项目中,权限管理即权限访问控制为网站访问安全提供了保障,并且很多项目使用了Session作为缓存,结合AOP技术进行token认证和权限控制.权限控制流程大致如下图所示: 现 ...
- 解决两个相邻的span,或者input和button中间有间隙,在css中还看不到
<span id="time"></span><span id="second"></span> <inp ...
- SpringCloud微服务(基于Eureka+Feign+Hystrix+Zuul)
一.搭建注册中心 1.1.创建一个cloud-service项目 1.2:POM文件依赖 1 <?xml version="1.0" encoding="UTF-8 ...
- gRPC(3):拦截器
在 gRPC 调用过程中,我们可以拦截 RPC 的执行,在 RPC 服务执行前或执行后运行一些自定义逻辑,这在某些场景下很有用,例如身份验证.日志等,我们可以在 RPC 服务执行前检查调用方的身份信息 ...
- Redis 底层数据结构之字典
文章参考 <Redis 设计与实现>黄建宏 字典 在字典中,每个键都是独一无二的,程序可以在字典中根据键查找与之相关联的值,或者通过键来更新和删除值. 字典在 Redis 中的应用相当广泛 ...
- 通过CRM客户系统改变销售工作模式
CRM客户管理软件对于企业来说,能够优化销售流程.维护客户关系.销售流程管理等.但是很多销售人员认为企业购买CRM软件,是用来监视他们的武器,自然会受到销售团队的抵触.所以经常会出现管理者辛苦的选型, ...
- elementui——表格的相同内容单元格合并
在今天工作中遇到了相同单元格需要合并的一个需求,实现记录如下. 实现效果: 任务要求: 对表中体系这一列相同的体系进行合并. 思路:定义一个空数组:[]定义一个变量:0遍历数据如果有相同数据 在空数组 ...