自定义涵数模型拼接-对集合中的数据进行过滤
作者:互联网
自定义涵数模型拼接
请使用Function进行函数模型的拼接,按照顺序需要执行的多个函数操作为︰
String str ="赵丽颖,20";
1.将字符串截取数字年龄部分,得到字符串﹔
2.将上一步的字符串转换成为int类型的数字﹔
3.将上一步的int数字累加100,得到结果int数字。
package A_Lian_two.D02; import java.util.function.Function; /* 请使用Function进行函数模型的拼接,按照顺序需要执行的多个函数操作为︰ String str ="赵丽颖,20"; 1.将字符串截取数字年龄部分,得到字符串﹔ 2.将上一步的字符串转换成为int类型的数字﹔ 3.将上一步的int数字累加100,得到结果int数字。 */ public class Demo03Test { public static void main(String[] args) { String str="赵丽颖,20"; int num = change(str, (String s) -> { return s.split(",")[1]; }, (String s) -> { return Integer.parseInt(s); }, (Integer i) -> { return i + 100; }); System.out.println(num); } private static int change(String s, Function<String,String> fun1, Function<String,Integer> fun2,Function<Integer,Integer> fun3) { return fun1.andThen(fun2).andThen(fun3).apply(s); } }
对集合中的数据进行过滤
说到Stream便容易想到I/O Stream,而实际上,谁规定"流"就一定是""0流"呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。
传统集合的多步遍历代码
几乎所有的集合(如collection 接口或Map接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如︰
这是一段非常简单的集合遍历操作∶对集合中的每一个字符串都进行打印输出操作。
循环遍历的弊端
Java 8的Lambda让我们可以更加专注于做什么( What ),而不是怎么做(How ),这点此前已经结合内部类进行了对比说明。现在,我们仔细体会一下上例代码,可以发现︰
. for循环的语法就是“怎么做”
. for循环的循环体才是“做什么”
为什么使用循环﹖因为要进行遍历。但循环是遍历的唯一方式吗?遍历是指每一个元素逐一进行处理,而并不是从第一个到最后一个顺次处理的循环。前者是目的,后者是方式。
试想一下,如果希望对集合中的元素进行筛选过滤︰
1.将集合A根据条件一过滤为子集B;
2.然后再根据条件二过滤为子集C。那怎么办?在Java8之前的做法可能为︰
标签:Function,遍历,String,自定义,int,涵数,字符串,拼接,集合 来源: https://www.cnblogs.com/leijia/p/16504537.html