遍历集合
package cn.unuuc.java;
import java.util.ArrayList;
import java.util.function.Consumer;
public class TestLambda {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("!");
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
list.forEach(s -> System.out.println(s));
}
}
在 forEach
方法内,其形参为一个 Consumer
函数接口,所以可以通过Lambda来简化代码
集合排序
@Test
public void test08(){
ArrayList<UserEntity> userEntities = new ArrayList<>();
userEntities.add(new UserEntity("小明",12));
userEntities.add(new UserEntity("小红",22));
userEntities.add(new UserEntity("小蓝",13));
userEntities.add(new UserEntity("小绿",16));
userEntities.add(new UserEntity("小紫",21));
userEntities.sort(new Comparator<UserEntity>() {
@Override
public int compare(UserEntity o1, UserEntity o2) {
return o1.getAge()- o2.getAge();
}
});
userEntities.forEach((u)-> System.out.println(u.toString()));
// Lambda 实现排序
userEntities.sort(((o1, o2) -> o1.getAge()-o2.getAge()));
userEntities.forEach((u)-> System.out.println(u.toString()));
}
实现线程调用
package cn.unuuc.java;
public class Test {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}).start();
// Lambda
new Thread(()-> System.out.println(Thread.currentThread().getName())).start();
}
}
应为Runnable 为一个函数接口