java8函数式编程

java中的函数式编程


/**
 * 函数式编程demo
 */
public class FunctionalTest {

    static void testCompare1(int src, double limit) {
        double d= src*src+src * 10.0;
        if (d < limit){
            System.out.println("Success: " + d);
        }else {
            System.out.println("Failure: " + d);
        }
    }

    /**
     *  使用函数式编程模拟实现一个比较大小(x*x+10*x与limit),并返回结果提示功能
     * @param src x
     * @param limit 结果
     */
    static void testCompare2(int src, double limit) {

        // 取值
        Supplier<Integer> source = () -> {
            return src;
        };
        //构造一个函数
        Function<Integer, Double> process = i -> i*i+i * 10.0;

        // 条件
        Predicate<Double> condition = num -> {
            //System.out.println("Test if	" + num + "	is smaller than " + limit);
            return num < limit;
        };
        // 结果
        Consumer<Double> success = d -> System.out.println("Success: " + d);
        Consumer<Double> failure = d -> System.out.println("Failure: " + d);

        // 展示函数当作参数传递
        calculate(source, process, condition, success, failure);
    }

    /**
     *  这里展示了函数当作参数传递
     * @param source
     * @param process
     * @param condition
     * @param success
     * @param failure
     */
    static void calculate(Supplier<Integer> source, Function<Integer, Double> process, Predicate<Double> condition, Consumer<Double> success, Consumer<Double> failure) {
        int i = source.get();
        double res = process.apply(i);
        if (condition.test(res)) {
            success.accept(res);
        } else {
            failure.accept(res);
        }
    }

    public static void main(String[] args) {

        System.out.println("====正常方法=====");
        testCompare1(2,10);
        System.out.println("====函数式方法=====");
        testCompare2(2,10);
    }
}

先把代码抛出来,日后解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值