一、lambda表达式
在Java中,Lambda表达式是一种函数式编程的特性,它允许以简洁的语法编写函数或操作,而无需显式创建匿名类。Lambda表达式在Java 8中引入,是使Java更适应现代编程风格和需求的重要工具。lambda表达式可以代替简单的匿名内部类的实现。
lambda表达式的一个重要作用就是能够简写代码。
需要注意的是,lambda表达式只适用于函数式接口,也就是接口内只定义了一个方法的接口。
如果一个接口是函数式接口一般会使用 @FunctionalInterface 来表示。
例如:forEach遍历中的接口就是一个函数式接口。
需要了解的是在实现 lambd表达式时可以按规则来简写lambda表达式:
在小括号()内,如果只有一个形参,或者形象类型只有一种,那么形参类型可以省略
在大括号内{},如果只有一条语句,那么 大括号可以省略、return可以省略、分号也可以省略。
以下通过具体案例来说明这个简写规则。
首先先定义一个set集合,我们都知道set集合是无索引的,那么set集合常规的遍历方式只有迭代器遍历与forEach遍历。
// 迭代器方式遍历set集合
// 创建迭代器
Iterator<String> it = s.iterator();
// 判断当前迭代器指针是否指向最后一个位置
while(it.hasNext()){
// 返回迭代器指针当前指向的元素,并且移动迭代器指针
String str = it.next();
System.out.println(str);
}
以上效果都是一样的,但是可以看到lambda表达式的代码结构清晰了许多,这就是lambda表达式的作用。