Java——Lambda表达式运用

import java.util.Arrays;
interface Test
{
  public String speak(String s);
 
}
//1.可以用普通的类继承,实现接口
//2.可以用匿名内部类,实现接口
//3.可以用Lambda表达式,实现接口
//简洁但有限制,Lambada表达式只可以实现只有一个方法的接口
class Student
{
  int age;
  String name;
  public Student(int a,String n)
  {
   age = a;
   name = n;
  }
  public Student() {}
  public int getAge()
  {
   return this.age;
  }
  public String getName()
  {
   return this.name;
  }
@Override
//添加的方法,重写Arrays里面的方法,方便输出
public String toString() {
 return "Student [age=" + age + ", name=" + name + "]";
}
}
//运用这个类,结合比较接口和Lambda表达式,实现比较输出。
public class LambadaDemo {
 public static void main(String[] args)
 {
  Test test1 = new Test()
 {
   public String speak(String s)
   {
    System.out.println(s);
    return s;
   }
 };//匿名内部类实现接口。
 Test test2 = (s)->{System.out.println(s);return s;};
 //Lambda表达式实现接口
 //以下是运用比较接口和数组排序以及Lambada表达式实现的对象数组排序
 Student []st1 = {new Student(21,"wei"),new Student(18,"zhong"),new Student(20,"wang")};
 Arrays.sort(st1, (o1,o2)->o1.getAge()-o2.getAge());
 System.out.println(Arrays.toString(st1));
 }
}
posted @ 2020-02-22 13:41  打开太阳  阅读(149)  评论(0编辑  收藏  举报