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内置的四大核心函数式接口的更多相关文章

  1. Java8新特性 - Java内置的四大核心函数式接口

    Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...

  2. JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...

  3. Java8内置的四大核心函数式接口

    package java_8; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import j ...

  4. java8 四大核心函数式接口Function、Consumer、Supplier、Predicate(转载)

    Function<T, R> T:入参类型,R:出参类型 调用方法:R apply(T t); 定义函数示例:Function<Integer, Integer> func = ...

  5. JAVA 8 主要新特性 ----------------(四)Lambda函数式接口

    一.什么是函数式接口 只包含一个抽象方法的接口,称为函数式接口.  你可以通过 Lambda 表达式来创建该接口的对象.(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法 ...

  6. java8新特性——四大内置核心函数式接口

    在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...

  7. java 并发——内置锁

    坚持学习,总会有一些不一样的东西. 一.由单例模式引入 引用一下百度百科的定义-- 线程安全是多线程编程时的计算机程序代码中的一个概念.在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同 ...

  8. java script 内置对象

    java script 内置对象 Date 日期对象 字符串对象 定义字符串的方法就是直接赋值 使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写,反之 toLo ...

  9. Java8新特性_四大内置核心函数式接口

    Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...

随机推荐

  1. pytest命令行参数

    1.-v:可以输出用例更加详细的执行信息,如下图 C:\Users\cale\checkapi\test_cc>pytest test_m1.py -v ==================== ...

  2. Swapon交换空间: 缓解真实物理内存的压力

    交换空间: 缓解真实物理内存的压力 交换空间: 缓解真实物理内存的压力 由硬盘的空间来组成 – 交换分区:以空闲分区充当的交换空间 1.格式化交换分区 [root@server0 /]# mkswap ...

  3. python通过字典实现购物车案例-用户端

    import os dict01 = { 'iphone' : { '5999' : { '总部位于美国' : '价格相对较贵', }, }, 'wahaha' : { '15' : { '总部位于中 ...

  4. 「JVM」知识点详解一:JVM运行原理详解

    前言 JVM 一直都是面试的必考点,大家都知道,但是要把它搞清楚又好像不是特别容易.JVM 的知识点太散,不系统,今天带大家详细的了解一下jvm的运行原理. 正文 1 什么是JVM? JVM是Java ...

  5. 有效Ajax案例

    <script>$(document).ready(function(){ $("input:submit").click(function(){ $.ajax({ t ...

  6. DOS命令行(11)——更多实用的命令行工具

    start 启动另一个窗口运行指定的程序或命令,所有的DOS命令和命令行程序都可以由start命令来调用.该命令不仅能运行程序,还能运行协议对应的程序 命令格式:START ["title& ...

  7. 【CSAPP】以CTFer的方式打开BufferLab

    [WARNING] 本文是对CSAPP附带的Buffer Lab的究极指北,PWN小白趁机来练习使用pwntools和gdb && 用老朋友IDA查看程序逻辑(可以说是抄小路了x. L ...

  8. external-provisioner源码分析(3)-组件启动参数分析

    更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 external-provisioner源码分析(3)-组件启动参数分析 本文将对extern ...

  9. 去除office自动生成目录后生成的小框框(内容控件,目录控件)

    如何自动生成目录在这里就不进行阐述了,想必能看到这这里的人已经完成了目录的自动生成,那我就来直接演示如何去除自动生成目录后烦人的目录内容控件吧 直接上图片

  10. Redisson 分布式锁实现之源码篇 → 为什么推荐用 Redisson 客户端

    开心一刻 一男人站在楼顶准备跳楼,楼下有个劝解员拿个喇叭准备劝解 劝解员:兄弟,别跳 跳楼人:我不想活了 劝解员:你想想你媳妇 跳楼人:媳妇跟人跑了 劝解员:你还有兄弟 跳楼人:就是跟我兄弟跑的 劝解 ...