Lambda表达式

函数式编程

这是一种思想特点

面向对象:先找对象,让对象做事情,强调做什么,而不是谁去做

()->{ }

注意点:Lambda表达式可以用来简化匿名内部类的书写

Lambda表达式只能简化函数时接口的匿名内部类的写法

函数式接口:

有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@Functionalinterface注解。

好处:

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,它可以写出更简洁、更灵活的代码,作为一种更紧凑的代码风格,使Java语言表达能力得到了提升。

Lambda省略规则

1.参数类型可以省略不写。

2.如果只有一个参数,参数类型可以省略,同时()也可以省略。

3.如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略。

package test;

import java.util.Arrays;

public class Text1 {
    public static void main(String[] args) {
        Friend f1  = new Friend("zhang",20,1.74);
        Friend f2  = new Friend("song",21,1.75);
        Friend f3  = new Friend("liu",21,1.75);
        Friend f4  = new Friend("zhao",22,1.76);
        Friend[] arr = {f1,f2,f3,f4};
        Arrays.sort(arr, (o1, o2)->{
                double temp = o1.getAge() - o2.getAge();
                temp = temp == 0 ? o1.getHeight()-o2.getHeight():temp;
                temp = temp == 0 ? o1.getName().compareTo(o2.getName()):temp;
                if(temp >0){
                    return 1;
                }else if (temp<0){
                    return -1;
                }else {
                    return 0;
                }
        });
        System.out.println(Arrays.toString(arr));
    }
}
package test;

public class Friend {
    private String name;
    private int age;
    private double height;

    public Friend() {
    }

    public Friend(String name, int age, double height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    @Override
    public String toString() {
        return "Friend{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                '}';
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值