JDK8-四大核心函数式接口(三)
2017-06-19 21:43
453 查看
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 ; } }
相关文章推荐
- 第二十三讲 JDK8的foreach与Consumer接口、四大核心函数式接口、Stream接口、队列与栈
- Java8新特性_四大内置核心函数式接口
- java 8 内置四大核心函数式接口
- Java8的四大核心函数式接口
- Java8新特性 -- 四大内置的核心函数式接口
- java8 内置的四大核心函数式接口
- Java8中内置的四大核心函数式接口
- Rhyme/Java 8 四大核心函数式接口
- 四大内置核心函数式接口
- Lambda使用(二)->四大核心函数式接口
- JDK8新特性之函数式接口
- JDK8新特性学习(一) Lambda表达式和函数式接口
- jdk8特性例子 内置函数式接口
- jdk8新特性:Lambda表达式(也称为闭包、可传递的匿名函数)与函数式接口@FunctionalInterface
- JDK8-函数式接口
- JDK8 函数式接口
- jdk8函数式接口,SAM类型的接口(Single Abstract Method)
- JDK8新特性之函数式接口
- 第十八讲 二叉树、JDK8函数式接口、File类、输入流与输出流、字节流与字符流、文件复制的实现
- java8 四个核心函数式接口