函数编程与lambda表达式学习笔记

本文介绍了函数式编程的基本理念,强调其关注结果而非过程的特点,并通过实例展示了JDK 1.8中的Lambda表达式使用。讨论了Lambda表达式的书写形式,以及与函数接口的关系,指出Lambda要求接口只有一个抽象方法。同时,文章提到了JDK 1.8的@FunctionalInterface注解和默认方法,解释了它们如何简化代码。最后,提到了方法引用、类型推断以及级联表打式与柯里化的概念。
摘要由CSDN通过智能技术生成

1、函数式编程:一种相对于命令式编程的方式,命令式编程关注编程过程,函数式编程注重结果,不关注实现过程。

列字:数堆中寻找最小值

import java.util.stream.IntStream;

//寻找函数中的最小值
public class Test1 {
    public static void main(String[] args) {
        int [] arr={1,4,55,34,3,-6};
        int temp=Integer.MAX_VALUE;
        for (int num:arr) {
            temp=num<temp?num:temp;
        }
        System.out.println("命令式:"+temp);
        //JDK1.8+ 函数式编程
        int target= IntStream.of(arr).min().getAsInt();
        System.out.println("函数式:"+target);
    }
}

Jdk 1.8 lambda表打式:

package com.tian.test;

public class Test2 {
    public static void main(String[] args) {
        //jdk 1.8之前
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("非lambda表打式,繁琐");
            }
        }).start();
        //jdk 1.8+ lambda 表达式
        new Thread(()->System.out.println("lambda表打式,简洁易读")).start();
    }
}

带“->”的代码就称为lambda表打式。

Lambda表打式常见写法:

package com.tian.test;

public class LambdaDomo1 {
    public static void main(String[] args) {
        InterFace1 i1=(i)->i*5;
        //最常见
        InterFace1 i2=i->i*5;
        InterFace1 i3=(int i)->i*5;
        InterFace1 i4=(i)->{
            System.out.println("多行");
            return i*5;
        };
    }
}
interface InterFace1{
    int doubleNumber(int num);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值