什么是lambda表达式?为什么使用lambda表达式?
lambda表达式是一个匿名函数,我们可以将其理解为一段传递信息的代码(将代码像数据一样传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使得Java代码的可读性大大提高。
1、lambda表达式对于匿名内部类的改造:
//使用内置的比较器
TreeSet<User> set = new TreeSet <>(new Comparator <User>() {
@Override
public int compare(User o1, User o2) {
return o1.getName().compareTo(o2.getName());
}
});
//使用lambda表达式定义一个比较器
TreeSet <User> set1 = new TreeSet <>(Comparator.comparing(User::getName));
final List <User> users = Arrays.asList(
new User("李四", 19),
new User("张三", 16),
new User("王五", 23),
new User("王五", 23)
);
System.out.println(users);
set1.addAll(users);
System.out.println(set1);
很明显,使用lambda表达式后一切看起来非常简洁,这也是我喜欢它的原因之一。