BiFunction接受两个任意类型参数并返回一个任意类型对象

@FunctionalInterface
public interface BiFunction<T, U, R> {R apply(T t, U u);
}

BiFunction 与Function连用

private void bifunction() {BiFunction<Integer,Integer,Double> biFunction = (a,b)->Math.pow(a,b);Function<Double,String> function = a->"result:"+String.valueOf(a);System.out.println(biFunction.andThen(function).apply(3,4));
}

BiFunction与Function作为参数

private void bifunction2(BiFunction<Integer,Integer,Double> biFunction, Function<Double,String> function, Integer a,Integer b) {String s = biFunction.andThen(function).apply(a,b);System.out.println(s);
}private void bifunction3() {BiFunction<Integer,Integer,Double> biFunction = (a,b)-> Math.pow(a,b);Function<Double,String> function = a->"result:"+a;bifunction2(biFunction,function,3,4);
}

BiFunction作为工厂

private void biFuncFac2(){GPS gps = biFunctionFac("40.741895", "-73.989308", GPS::new);System.out.println(gps);
}private <R extends GPS> R biFunctionFac(String lat, String lon, BiFunction<String,String,R> biFunction){return biFunction.apply(lat, lon);
}

BiFunction作为filter

private <T,U,R> List<R> biFunFilter(List<T> list, U cond, BiFunction<T,U,R> biFunction) {List<R> result = new ArrayList<>();for (T t : list) {R r = biFunction.apply(t,cond);if (!Objects.isNull(r)) {result.add(r);}}return result;
}private void  biFunFilter2() {List<String> list = Arrays.asList("node", "c++", "java", "javascript");//BiFunction<String,Integer,String> biFunction = ()List<String> list1 = biFunFilter(list, 3,  (a,size)-> {if (a.length() > size) {return a;} else {return null;}});System.out.println(list1);List<String> list2 = biFunFilter(list, "c", (a, cond)->{if (a.startsWith(cond)) {return a;} else {return null;}});System.out.println(list2);List<Integer> number = Arrays.asList(1,2,3,4,5,6,7);List<Integer> list3 = biFunFilter(number, 2, (a, cond)->{if (a % cond == 0) {return a;} else {return null;}});System.out.println(list3);
}

BiFunction介绍相关推荐

  1. CompletableFuture API用法介绍(二)

    文章目录 一.纯消费 API 1.thenAccep 2.thenAcceptBoth 3.runAfterBoth 4.thenRun(Runnable action) 二.组合API 1.then ...

  2. java 接口 this参数_Java BiFunction 接口实例

    原标题:Java BiFunction 接口实例 www.baeldung.com/java-bifunction-interface 1. 简介 Java8 引入了函数式编程,可以把函数作为参数传入 ...

  3. java8新特性Lambda和Stream以及函数式接口等新特性介绍

    主要内容 1.Lambda 表达式 2.函数式接口 3.方法引用与构造器引用 4.Stream API 5.接口中的默认方法与静态方法 6.新时间日期API 7.其他新特性 Java 8新特性简介 速 ...

  4. Reactor (1)Mono和Flux进行响应式编程介绍

    Reactor Mono和Flux进行反应式编程 官网:https://projectreactor.io/ 教程:https://projectreactor.io/docs/core/releas ...

  5. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  6. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  7. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  8. pytorch学习笔记(九):PyTorch结构介绍

    PyTorch结构介绍 对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型 和数值相关的 T ...

  9. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:人脸识别
  2. Python 第三方库自动安装脚本
  3. ccc计算机比赛如何报名,整理:加拿大的CCC是什么,怎么报名?
  4. 13---Net基础加强
  5. Qt 二级菜单栏 中文无法输入问题
  6. android获取所有的子进程,Android M:如何获取所有进程UID?
  7. seaborn常用图
  8. 陈皓谈程序员的升级:职业规划就像软件工程
  9. linux 下tomcat服务每天定时启动
  10. Java 抽象类和接口的区别
  11. 进程(Process)和线程(Thread)的区别
  12. 密码输入页面的实现-模仿支付宝
  13. CICD详解(七)——git、gitlab与github
  14. TurboMail 邮件系统V5.2.0新品发布会盛况直击
  15. 超级有用的git reset --hard和git revert命令
  16. positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
  17. Java全栈工程实践
  18. HEVC视频转码解决办法
  19. Java中继承thread类与实现Runnable接口的区别(转)
  20. 在 Google Play 上保护您的游戏与用户

热门文章

  1. Quartz的12张数据库表说明
  2. android Criteria
  3. 《第一行代码》总结之简介、Activity(一)
  4. 微信小程序之首页轮播图片自适应高度
  5. 神经网络与深度学习一 :介绍深度学习
  6. 如何安装pypi下载的包
  7. 利用python制作一个名片_教你做一张能运行 Python 的名片,成本只要20元!
  8. 大数据技术之数据仓库
  9. 概率分布之二项分布、泊松分布
  10. python版本换行问题