Java 8 的四大函数
对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 的四大函数相关推荐
- ViewPager 详解(二)---详解四大函数
前言:上篇中我们讲解了如何快速实现了一个滑动页面,但问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合Android的API说明 ...
- Android 应用开发----ViewPager---2.四大函数
ViewPager 详解(二)---详解四大函数 一.SDK讲解 1.官方文档:(看不懂没关系,下面有翻译) Class Overview Base class providing the adapt ...
- Java正则表达式--Matcher.group函数的用法
https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...
- Java中的回调函数学习-深入浅出
Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...
- java中的string函数_java中string.trim()函数的作用实例及源码
trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...
- java.net.SocketException四大异常解决方案
java.net.SocketException四大异常解决方案 参考文章: (1)java.net.SocketException四大异常解决方案 (2)https://www.cnblogs.co ...
- Java中的split函数
Java中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回: String str="1234@abc"; String[] a = s ...
- java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...
一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...
- java match正则不生效_[Java教程]正则表达式match()函数
[Java教程]正则表达式match()函数 0 2015-09-26 12:00:31 正则表达式match()函数: 此方法可在字符串内查找一个或多个正则表达式的匹配. 返回值是一个数组,但是此数 ...
最新文章
- SAP 730模糊查询时不可以输入连续的汉字问题解决方案
- 科大星云诗社动态20210226
- 【C语言】复合逻辑运算
- visual studio如何修改c++项目的.net framework框架版本
- poj2516Minimum Cost
- 【实习生笔试面试题】2013年搜狐SOHU实习生技术笔试题
- python绘制turtle心电图代码_python的生态系统是由标准库和第三方库组成的,turtle库是其标准库,所以不需要安装。_学小易找答案...
- 修改yum源的资源路径baseurl
- vue.js 多页 php,vue-cli创建的项目,配置多页面的实现方法
- hdu1505 dp:01矩形中最大面积全0矩阵
- RTCM3.1/3.2
- 测井解释-泥岩-煤层-砂岩-石灰岩-白云岩-硬石膏-岩盐-水
- 利用python更改图片格式和分辨率
- P2504 [HAOI2006]聪明的猴子
- Charles抓取手机APP接口数据使用方法
- 我和我的中山公园”摄影作品大赛投票通道即将开启,让你的才艺C位出道~
- mysql乘法_mysql乘法
- 码云团队如何使用码云?
- MySQL数据库:SQL执行顺序
- Android下载地址