对Java 8 的使用心得

1. 函数接口类

  • consumer函数(消费函数): 有参数无返回值
public class consumerInterface {public static void main(String[] args) {Consumer<String> consumer = s -> System.out.println(s);consumer.accept("hello wold!");}
}

在Java8 中实现消费型函数,如上代码,抽象接口的实现部分为System.out.println(s);调用抽象方法的accept 方法来传递参数值。

  • supplier 函数(供给型函数): 无参数有返回值

练习需求: 产生指定个数的数据,数据类型使用supplier 函数实现

 public static void main(String[] args) {Consumer<String> consumer = s -> System.out.println(s);consumer.accept("hello wold!");/*** Math.random 函数产生的 值在0.0 - 1.0 之间* 需求: 产生指定数量,指定范围的 整数值*/consumerInterface intance = new consumerInterface();List<Integer> list = intance.getList(10,() -> (int)(Math.random() * 100));for (Integer i: list ) {System.out.println(i);}}public List<Integer> getList (int len, Supplier<Integer> sup ){List<Integer> list = new ArrayList<>();for (int i = 0; i < len ; i++) {list.add(sup.get());}return list;}
  • predicate 函数(断言型函数): 有参数又返回值,返回值为true 或者 false

需求: 将满足条件的字段串,放入集合中

 List<String> stringList = intance.predicateStr("AAAaaaaa",(string) ->{if(string.length() > 5){return true;}else {return false;}});stringList.forEach(e -> System.out.println(e.toString()));public List<String> predicateStr(String source , Predicate<String> predicate){List<String> list = new ArrayList<>();boolean flag = predicate.test(source);if(flag){list.add(source);}return list;}
  • function 函数(函数型函数):有参数有返回值

练习需求:用于处理字符串,字符串的处理方式由函数 function 接口的实现 来指定

/***  将给定的字符串,提取其中的字符*/List<String> arrayChar = intance.handleStr("AAAABBBBCCC",(str) ->{List<String> newChars = new ArrayList<>();char[] chars =  str.toCharArray();for (char c : chars) {/*** contains() 循环调用对象的equal() 方法*/if(!newChars.contains(c)){newChars.add(String.valueOf(c));}}return newChars;});public List<String> handleStr(String source, Function<String, List<String>> function){return  function.apply(source);}

Java 8 的四大函数相关推荐

  1. ViewPager 详解(二)---详解四大函数

    前言:上篇中我们讲解了如何快速实现了一个滑动页面,但问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合Android的API说明 ...

  2. Android 应用开发----ViewPager---2.四大函数

    ViewPager 详解(二)---详解四大函数 一.SDK讲解 1.官方文档:(看不懂没关系,下面有翻译) Class Overview Base class providing the adapt ...

  3. Java正则表达式--Matcher.group函数的用法

    https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...

  4. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  5. java中的string函数_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

  6. java.net.SocketException四大异常解决方案

    java.net.SocketException四大异常解决方案 参考文章: (1)java.net.SocketException四大异常解决方案 (2)https://www.cnblogs.co ...

  7. Java中的split函数

    Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回: String str="1234@abc"; String[] a = s ...

  8. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  9. java match正则不生效_[Java教程]正则表达式match()函数

    [Java教程]正则表达式match()函数 0 2015-09-26 12:00:31 正则表达式match()函数: 此方法可在字符串内查找一个或多个正则表达式的匹配. 返回值是一个数组,但是此数 ...

最新文章

  1. SAP 730模糊查询时不可以输入连续的汉字问题解决方案
  2. 科大星云诗社动态20210226
  3. 【C语言】复合逻辑运算
  4. visual studio如何修改c++项目的.net framework框架版本
  5. poj2516Minimum Cost
  6. 【实习生笔试面试题】2013年搜狐SOHU实习生技术笔试题
  7. python绘制turtle心电图代码_python的生态系统是由标准库和第三方库组成的,turtle库是其标准库,所以不需要安装。_学小易找答案...
  8. 修改yum源的资源路径baseurl
  9. vue.js 多页 php,vue-cli创建的项目,配置多页面的实现方法
  10. hdu1505 dp:01矩形中最大面积全0矩阵
  11. RTCM3.1/3.2
  12. 测井解释-泥岩-煤层-砂岩-石灰岩-白云岩-硬石膏-岩盐-水
  13. 利用python更改图片格式和分辨率
  14. P2504 [HAOI2006]聪明的猴子
  15. Charles抓取手机APP接口数据使用方法
  16. 我和我的中山公园”摄影作品大赛投票通道即将开启,让你的才艺C位出道~
  17. mysql乘法_mysql乘法
  18. 码云团队如何使用码云?
  19. MySQL数据库:SQL执行顺序
  20. Android下载地址

热门文章

  1. 送给英语学习者的十句经典名言
  2. 微信浏览器强制刷新方法怎么清空缓存
  3. 瓦片经纬度及行列号转换_arcgis server瓦片行列号计算
  4. 顾问发展经历小总结及小tips 2021-02-25
  5. 入职第一天--随便说几句话
  6. java 必读经典书籍
  7. android.support.v7的v7报红,但程序不影响编译
  8. 学生护眼灯怎么选择?平价且护眼的护眼灯推荐
  9. 如何做好项目经理:大项目售前售后30种技巧(120页PPT讲义和思维导图免费分享)...
  10. 德玛西亚之WorkFlow(四)数据库设计