Java——Lambda表达式运用
import java.util.Arrays;
interface Test
{
public String speak(String s);
}
//1.可以用普通的类继承,实现接口
//2.可以用匿名内部类,实现接口
//3.可以用Lambda表达式,实现接口
//简洁但有限制,Lambada表达式只可以实现只有一个方法的接口
{
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 + "]";
}
{
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表达式,实现比较输出。
//运用这个类,结合比较接口和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));
}
{
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));
}
}