JDK8-四大核心函数式接口(三)
来源:互联网 发布:打造世界怎么修改数据 编辑:程序博客网 时间:2024/06/05 14:47
package cn.wcj.jdk8.lambda.test;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 LambdaTest3 { //Consumer<T> : 消费型接口 @Test public void test1() { happy(50000.0, (money)->System.out.println("我们彤哥喜欢大保健,每次消费"+money+"元")) ; } public void happy(Double money,Consumer<Double> consumer){ consumer.accept(money); } //Supplier<T> : 供给型接口 @Test public void test2(){ List<Integer> list = supply(10,()->(int)(Math.random()*100)) ; list.forEach(System.out::println); } public List<Integer> supply(Integer num ,Supplier<Integer> supplier){ List<Integer> resultList=new ArrayList<Integer>() ; for(int x=0;x<num;x++) resultList.add(supplier.get()) ; return resultList ; } //Function<T, R> : 函数型接口 @Test public void test3(){ String string = handleStr("\t\t\t\t 我大软院威武!!! ",(str)->str.trim()) ; System.out.println(string) ; String string2 = handleStr("我大软院威武", str->str.substring(2, 6)); System.out.println(string2); } public String handleStr(String target,Function<String, String> fun){ return fun.apply(target) ; } //Predicate<T> : 断言型接口 @Test public void test4(){ List<String> list=Arrays.asList("atguigu","mldn","bjpowernode","itcast","sxt") ; List<String> newList = filterStr(list,string->string.length()>3) ; newList.stream().forEach(System.out::println) ; } public List<String> filterStr(List<String> list,Predicate<String> predicate){ List<String> resultList=new ArrayList<>() ; int size = list.size(); for(int x=0;x<size;x++){ String string = list.get(x) ; if(predicate.test(string)) resultList.add(string) ; } return resultList ; }}
阅读全文
1 0
- JDK8-四大核心函数式接口(三)
- 第二十三讲 JDK8的foreach与Consumer接口、四大核心函数式接口、Stream接口、队列与栈
- Java8的四大核心函数式接口
- 四大内置核心函数式接口
- Java8的四大核心函数式接口
- jdk8 函数式接口
- Java8中内置的四大核心函数式接口
- Java8新特性_四大内置核心函数式接口
- jdk8特性例子 内置函数式接口
- JDK8 注解:函数式接口@FunctionalInterface
- JDK8新特性之函数式接口
- JDK8新特性之函数式接口
- JDK8新特性:函数式接口@FunctionalInterface的使用说明
- JDK8新特性:函数式接口@FunctionalInterface的使用说明
- jdk8函数式接口,SAM类型的接口(Single Abstract Method)
- java8 四个核心函数式接口
- jdk8新特性:Lambda表达式(也称为闭包、可传递的匿名函数)与函数式接口@FunctionalInterface
- Java8新特性(内置的核心函数式接口)
- Raspberry Pi: VNC安装与配置
- Ambari安装client报错OSError:[Error 17] File exists
- 树莓派开源驱动库源码分析之bcm2835_init
- 二维数组中的查找
- Web17.JS数据类型/运算符/优先级/流程控制语句
- JDK8-四大核心函数式接口(三)
- 扑克牌顺序
- Node.js的安装
- 随机出 不一样的 5个数
- HDOJ 2034 人见人爱A-B
- easyUI刷新界面时列自动变宽直到超过屏幕
- 复习
- 汇编-4
- Android从一个APP跳转到另一个APP的主界面或者某Activity