使用Lambda表达式的优点:
1.简化代码,使代码更加紧凑
2.修改方法的能力
package ss;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<String> strList = new ArrayList<>();
strList.add("111");
strList.add("222");
strList.add("333");
Optional<String> findFirst = strList.stream().filter(str -> str.equals("111")).findFirst();
System.out.println(findFirst); // Optional[111]
List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);
intList.add(4);
// 过滤大于1的数,并且循环输出
intList.stream().filter(s -> s > 1).forEach(s -> System.out.print(s + "\t")); // 2 3 4
System.out.println();
// 统计集合的数量
long count = intList.stream().filter(s -> s > 1).count();
System.out.println(count); // 3
// 输出list
List<Integer> collect = intList.stream().filter(s -> 1 < s && s < 4).collect(Collectors.toList());
System.out.println(collect); // [2, 3]
// 输出set
Set<Integer> set = intList.stream().filter(s -> 1 < s && s < 3).collect(Collectors.toSet());
System.out.println(set); // [2]
// 遍历输出
intList.stream().filter(s -> 1 < s && s < 4)
.collect(Collectors.toList()).forEach(s -> System.out.print(s + "\t")); // 2 3
}
}
推荐几篇好的博文:
Java8初体验(二)Stream语法详解
Java 8:不要再用循环了
Java 8 简明教程
怒学Java8系列一:Lambda表达式