java里面的lambda

lambda格式

由三部分组成:
1、一些参数
2、一个箭头
3、一段代码
(参数列表) -> {一些重写方法的代码}
说明:
():接口中抽象方法的参数列表,有参就写参,每参就空着
->:箭头表示把参数传给代码
{}:重写接口中的抽象方法的方法体

public class Person {
    private String  name;
    private int age;

    public Person() {
    }

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

    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 Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
import java.util.Arrays;

public class TestPerson {
    public static void main(String[] args) {
        Person[] arr = {
                new Person("亚索",18),
                new Person("盖伦",30),
                new Person("剑圣",100),
        };

//        Arrays.sort(arr, new Comparator<Person>() {
//            @Override
//            public int compare(Person person1, Person person2) {
//                return person1.getAge() - person2.getAge() ;
//            }
//        });

        Arrays.sort(arr,(person1,person2) -> {
            return person2.getAge() - person1.getAge();
        });

        for (Person person:arr) {
            System.out.println(person);
        }
    }
}

lambda表达式是可推导,可省略(凡是根据上下文推导出来的内容,都可以省略)
可以省略的内容:
1、(参数列表):括号中参数列表的数据类型,可以省略不写
2、(参数列表):括号中的参数如果只有一个,那么类型和()都可以省略
3、没有参数括号不能省略
4、{代码} :如果{}中的代码只有一行,无聊是否有返回值,都可以省略({},return,分号)注意要省略一起省略

猜你喜欢

转载自www.cnblogs.com/saonian450/p/12549543.html
今日推荐