JDK1.8新特性Lambda语法2

Studen类存储数据

public class Student {
    private String name;
    private int age;
    
    public Student() {
        super();
    }
    public Student(String name, int age) {
        super();
        this.name = name;
        this.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;
    }
    @Override
    public String toString() {
        return "StaudentDemo [name=" + name + ", age=" + age + "]";
    }
        
}

使用lambda表达式实现Student对象的排序

import java.util.Arrays;
import java.util.Comparator;
public class JDK8Demo2 {
    public static void main(String[] args) {
        
        //student类的对象进行排序
        //方法一:使用comparator的匿名内部类
        Student [] st = {new Student("张三",15),new Student("李四",20),new Student("赵五",10) }; 
        Arrays.sort(st, new Comparator<Student>() {
            public int compare(Student o1,Student o2) {
                return o1.getAge()-o2.getAge();
            }
        });
        System.out.println(Arrays.toString(st));
        
        
        
        //方法二:使用lambda表达式:  ( 参数1,参数2...)->{代码块;}
        Comparator<Student> c = (o1,o2) -> o1.getAge()-o2.getAge(); //{代码块;}这里只有一句代码块时,花括号要省略否则报语法错误
        Arrays.sort(st,c);
        //或者合成一句话代码
        Arrays.sort(st,(o1,o2)->o1.getAge()-o2.getAge());
        
        System.out.println(Arrays.toString(st));

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_33733810/article/details/87073947