new Thread(()->{
System.out.println(Thread.currentThread().getName() + "执行");
},"Lambda线程创建").start();
一些参数
():接口中抽象方法的参数列表,无,就空着
一个箭头
->:把参数传递给代码块{}
一段代码块
{}:重写接口的抽象方法的方法体
//优化简写,省略了数据类型和{} return ;
Arrays.sort(person,(o1, o2) -> o1.getAge()-o2.getAge());
//优化简写,省略了{}和;
cookFood(() -> System.out.println("我最简单"));
public interface Cook{
public abstract void makeFood();
}
public class Demo01 {
public static void main(String[] args) {
//原型
cookFood(new Cook() {
@Override
public void makeFood() {
System.out.println("我太难了");
}
});
//使用Lambda表达式
cookFood(()->{
System.out.println("我实现了接口方法");
});
//优化简写
cookFood(() -> System.out.println("我最简单"));
public static void cookFood(Cook cook){
cook.makeFood();
}
}
package cn.learn.thread.Lambda.practice;
public class Person {
private String name;
private int 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() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package cn.learn.thread.Lambda.practice;
import java.util.Arrays;
import java.util.Comparator;
public class Demo {
public static void main(String[] args) {
//使用数组存储Person对象
Person[] person = {
new Person("sda",12),
new Person("sa",19),
new Person("da",10)
};
/* //使用Arrays的sort方法进行排序,升序
Arrays.sort(person, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge()-o2.getAge();
}
});*/
//使用Lambda表达式
Arrays.sort(person,(Person o1, Person o2)-> {
return o1.getAge()-o2.getAge();
});
//优化简写
Arrays.sort(person,(o1, o2) -> o1.getAge()-o2.getAge());
//增强for循环打印输出
for (Person p:person) {
System.out.println(p);
}
}
}
package cn.learn.thread.Lambda.practice;
public interface Calculator {
public abstract int calc(int ...sum);
}
package cn.learn.thread.Lambda.practice;
public class Demo01 {
public static void main(String[] args) {
//使用匿名的方法求和
//运行步骤:匿名创建实现类->实现类实现(重写)接口方法->传递匿名实现类->
//->传递不定数量的数值->c.calc(sNum)调用接口方法计算值,并返回值给sum
int sum = sumNumber(new Calculator() {
int sum=0;
//重写方法,无实参值运算
@Override
public int calc(int... num) {
for (int n: num) {
sum+=n;
}
return sum;
}
},7,8,9);
//使用Lambda表达式简写
int sum01= sumNumber((int ...num)->{
int temp=0;
for (int n: num) {
temp+=n;
}
return temp;
},74,22);
System.out.println(sum);//24
System.out.println(sum01);//96
}
public static int sumNumber(Calculator c, int ...sNum){
//把数组地址给接口方法的不定值num
int sum = c.calc(sNum);
return sum;
}
}
原文:https://www.cnblogs.com/huxiaobai/p/11537913.html