其他分享
首页 > 其他分享> > 自定义涵数模型拼接-对集合中的数据进行过滤

自定义涵数模型拼接-对集合中的数据进行过滤

作者:互联网

自定义涵数模型拼接

 

请使用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