JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口
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;import org.junit.Test;/** Java8 内置的四大核心函数式接口* * Consumer<T> : 消费型接口* void accept(T t);* * Supplier<T> : 供给型接口* T get(); * * Function<T, R> : 函数型接口* R apply(T t);* * Predicate<T> : 断言型接口* boolean test(T t);* */
public class TestLambda3 {//Predicate<T> 断言型接口:@Testpublic void test4(){List<String> list = Arrays.asList("Hello", "atguigu", "Lambda", "www", "ok");List<String> strList = filterStr(list, (s) -> s.length() > 3);for (String str : strList) {System.out.println(str);}}//需求:将满足条件的字符串,放入集合中public List<String> filterStr(List<String> list, Predicate<String> pre){List<String> strList = new ArrayList<>();for (String str : list) {if(pre.test(str)){strList.add(str);}}return strList;}//Function<T, R> 函数型接口:@Testpublic void test3(){String newStr = strHandler("\t\t\t 我大尚硅谷威武 ", (str) -> str.trim());System.out.println(newStr);String subStr = strHandler("我大尚硅谷威武", (str) -> str.substring(2, 5));System.out.println(subStr);}//需求:用于处理字符串public String strHandler(String str, Function<String, String> fun){return fun.apply(str);}//Supplier<T> 供给型接口 :@Testpublic void test2(){List<Integer> numList = getNumList(10, () -> (int)(Math.random() * 100));for (Integer num : numList) {System.out.println(num);}}//需求:产生指定个数的整数,并放入集合中public List<Integer> getNumList(int num, Supplier<Integer> sup){List<Integer> list = new ArrayList<>();for (int i = 0; i < num; i++) {Integer n = sup.get();list.add(n);}return list;}//Consumer<T> 消费型接口 :@Testpublic void test1(){happy(10000, (m) -> System.out.println("你们刚哥喜欢大宝剑,每次消费:" + m + "元"));} public void happy(double money, Consumer<Double> con){con.accept(money);}
}
JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口相关推荐
- java自带函数_java8中内置的四大核心函数式接口
java8中内置的四大核心函数式接口 Consumer:消费型接口 void accept(T t) //Consumer 消费型接口 public void happy(double money, ...
- JDK8新特性之Lambda表达式
转载自 JDK8新特性之Lambda表达式 什么是Lambda表达式 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁.当开发者在编写Lambda表达式时,也会随之被编译成 ...
- JDK8新特性之Lambda表达式和四大函数接口
在Java8中,加入了Lambda(Lambda expression),在使用它以前我们先聊聊为什么要加入Lamdba,使用它对于编程上有什么好处 一.Lamdba的作用 1.在我们需要把一些功能传 ...
- JDK8新特性:Lambda表达式、Stream流、日期时间工具类
重要特性: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号. 可选的大括号:如果主体包含了一个语句,就不需要大括号. ...
- JDK8新特性之Lambda表达式、函数式接口
JDK8特性之Lamdba.函数式接口 1. 什么是Lambda表达式 ❓ ⭐️1.1入门
- 熟悉JDK8新特性,“Lambda表达式与函数式接口”
Hello,你好呀,我是大白(●-●) 菜单 lambda表达式 函数式接口 lambda表达式 lambda表达式可以看成匿名内部类的一个简洁写法 在语法上,Lambda表达式包含三个部分: 参数列 ...
- jdk8新特性:Lambda表达式简单测试
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.swing.JButton; ...
- java8新特性总结——lambda表达式
最近看尚硅谷java8新特性视屏,总结一下学习知识. Lambda表达式:是一个匿名函数,我们可以把Lambda理解为一段可以传递的代码(将代码像数据一样传递),可以写出更简洁更灵活的代码.作为一种更 ...
- lambda 对象去重_最火的java8新特性:Lambda 表达式
主要内容 1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 其他新特性 Java 8新特性简介 速度更快 代码更少(增加了新的语法 Lambd ...
- java8新特性之lambda表达式--超级详细版本
java8新特性之lambda表达式 1.什么是lambda表达式?为什么用它? 2. 为什么Java需要lambda表达式? 3. lambda表达式的语法 4.函数式接口 4.1 什么是函数式接口 ...
最新文章
- 探秘Java中String、StringBuilder以及StringBuffer
- 生成特定分布随机数的方法
- cdq分治 陌上花开(内无题解)
- 程序员不会测试引起版本事故小结
- Compile LLVM+CLANG 4.0.1 for RHEL6
- android陀螺仪方向,获得陀螺仪传感器Android的输出
- 浅谈essay、paper和dissertation的区别
- 查看Mac上已连接WiFi的密码?
- 研究人员发现英特尔芯片组中可能被黑客使用的“新功能”VISA
- 全球与中国药用玻璃容器市场深度研究分析报告
- 管理信息系统复试——管理信息系统基础
- c语言strcpy两字符串长度不同,(C语言)自己写字符串操作函数(一)——strlen/strcpy/strcat/strcmp/st...
- 又一个奇葩要求,看看Python是如何将“中文”转“拼音”的?
- 彻底解决conda环境下 tensorflow gpu版本出现的问题:Not creating XLA devices, tf_xla_enable_xla_devices not set
- TCP/IP详解 第二章 Internet地址结构
- adb shell 中查看文件大小指令 ls -al 和 du -k \ du-h
- OpenStack依旧大行其道,但能否等来属于自己的时代
- 游戏服务器 c语言,C++游戏服务器编程从入门到掌握视频教程(全)
- 2022年终总结【毕业总结】
- 2022十二月GBase8a第二次阶段考试02-SQL基础