java8新特性学习——>lambda表达式学习(一)

lambda函数

lambda函数分为左右两个部分,左边为接口,右边为接口的实现比如

Runnable runable = ()-> System.out.prtal("函数的实现部分")

new Theard(runable).start();

就可以直接启动当前线程

lambda函数表达式的参数类型是可以省略不写的,因为jvm可以自己识别出来

如:

public static void main (String [] args){

    // 实现lambda函数

    dao dao = (x,y)->System.out.prtal(x+y);

    // 调用方法

    dao.show(1+2)

}

interface dao{

    void show (int i,int j);

}

函数式接口:接口中只有且必须有一个必须要实现的抽象方法,可以用functioninterface注解修饰

也可以有多个接口(但是除了必须要实现的抽象方法外,其他接口已经由父类实现了)

@FunctionInterface

interface dao{

    //必须要实现的抽象方法

    void show (int i,int j);

    // 父类已经实现

    boolean equals(Object obj);

}

案例:

1. 第一个案例,方法中有参数,并且有返回值

public static void main (String [] args){

    // 实现lambda函数

    dao dao = (x,y)->x+y;

    // 调用方法

    System.out.prtal(dao.show(1+2));

}

@Functioninterface

interface dao{

    int show (int i,int j);

}

2. 第二个案例,方法中有参数,并且有返回值,但是多行语句

public static void main (String [] args){

    // 实现lambda函数

    dao dao = (x,y)->{ //多行的时候并且有返回值 那么关键词return 必须添加

    if (x==0)

    return y;

    else return x+y;

}

    // 调用方法

    System.out.prtal(dao.show(1+2));

}

interface dao{

    int show (int i,int j);

}

3. 第三个案例,排序 (treeset底层为treemap 是一个二叉树)

    public static void main (String [] args){

    // 使用函数进行自定义排序

    comparator<Integer> com = (x,y) - > x-y; //升序

    comparator<Integer> com = (x,y) - > y-x; //降序

    TreeSet<Integer> set = new TreeSet<>(com);

    set.add(1);

    set.add(10);

    set.add(5);

    system.out.println(set) //无序集合

}

扩展案例:

自定义类,实现过滤

public static void main (String [] args){

    person per1 = new person();

    per1.setId(1);

    per1.setage(11);

    per1.sername(zmf);



    person per2 = new person();

    per2.setId(2);

    per2.setage(12);

    per2.sername(zmf1);



    List list = Array.asList(per1,per2);

    //转为流 获取大于11的数据

    list.stream().filter(x->x.getage()> 11).forEach(System.out.println);



}

@Data

class person{

    private integer id;

    private Integer age;

    private String name;

}


未完待续。。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值