博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8中规范的四大函数式接口
阅读量:4573 次
发布时间:2019-06-08

本文共 2069 字,大约阅读时间需要 6 分钟。

     java8中规范的四大函数式接口:

     1、Consumer<T>   :消费型接口    void accept(T t);

     2、Supplier<T>      :供给型接口    T get();

     3、Function<T,R>   :函数型接口    R apply(T t);

     4、Predicate<T>    :断言型接口    boolean test(T t);

事例一:

 

1 /** 2  * 消费形接口,有参数,无返回值 3  */ 4 public class ConsumerTest { 5  6   public static void main(String[] args) { 7  8     summer(10000, m -> System.out.println("世界那么大,我想去看看,可是钱包仅有:"+m+"元")); 9 10   }11 12   public static void summer(double money, Consumer
con) {13 con.accept(money);14 }15 }

结果:

 

事例二:

1 /** 2  * 供给形接口,无参数有返回值 3  */ 4 public class SupplierTest { 5  6   public static void main(String[] args) { 7  8     List
list = getRandomValue(5, () -> Math.random() * 100); 9 for (Double d : list) {10 System.out.println(d);11 }12 }13 14 public static List
getRandomValue(int num, java.util.function.Supplier
sup) {15 List
list = new ArrayList<>();16 for (int i = 0; i < num; i++) {17 list.add(sup.get());18 }19 return list;20 }21 }

结果:

 结果:

事例三:

/** * 函数形接口,有参数,有 */public class ConsumerTest {  public static void main(String[] args) {    String str = strHandler("一花一世界,一叶一菩提!", s -> s.substring(2,5));    System.out.println(str);  }  public static String strHandler(String str, Function
fun) { return fun.apply(str); }}

结果:

 

事例四:

1 /** 2  * 断言形接口,有参数,返回boolean 3  */ 4 public class PredicateTest { 5  6   public static void main(String[] args) { 7  8     List
list = Arrays.asList("北京","南京","东京","长安","洛阳"); 9 list = filterStr(list, s->s.contains("京"));10 list.forEach(System.out::println);11 }12 13 public static List
filterStr(List
list, Predicate
predicate) {14 List
stringList = new ArrayList<>();15 for (String str : list) {16 if (predicate.test(str))17 stringList.add(str);18 }19 return stringList;20 }21 }

结果:

 

转载于:https://www.cnblogs.com/shenwen/p/11015220.html

你可能感兴趣的文章
BA-设计施工调试流程
查看>>
C#-CLR各版本特点
查看>>
css3背景透明文字不透明
查看>>
实验四
查看>>
mssql sqlserver 取消数值四舍五入的方法分享
查看>>
[记录] JavaScript 中的事件分类
查看>>
《java JDK7 学习笔记》之接口与多态
查看>>
【NOI2008】志愿者招募
查看>>
LeetCode 96:Unique Binary Search Trees
查看>>
kernel-char设备的建立
查看>>
DVWA-CSRF
查看>>
letecode [404] - Sum of Left Leaves
查看>>
ubuntu common software introduction
查看>>
资源相互引用时 需添加 PerformSubstitution=True
查看>>
MapRedece(单表关联)
查看>>
蒲公英App开发之检测新版本
查看>>
【安卓基础】倒计时按钮封装(验证码倒计时按钮)
查看>>
configparser模块
查看>>
SelectQueryBuilder的用法
查看>>
android的用户定位(一)
查看>>