Lambda表达式
stream().forEach()循环处理
List<String> list = com.google.common.collect.Lists.newArrayList();
list.add("1");
list.add("2");
list.add("3");
list.stream().forEach(string ->{
System.out.println(string);
});
stream().map()处理集合,collect(Collectors.toList())结果输出为List
List<String> list1 = Lists.newArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
List<String> list2 = list1.stream().map(string -> {
return "stream().map()处理之后:" + string;
}).collect(Collectors.toList());
System.out.println(list2.toString());
stream().filter()过滤集合
List<String> list1 = Lists.newArrayList();
list1.add("1");
list1.add("1");
list1.add("2");
list1.add("3");
List<String> list2 = list1.stream().filter(s -> !s.equals("1")).collect(Collectors.toList());
System.out.println(list2.toString());
函数接口
一个只包含一个方法的接口,可以使用Lambda表达式作为参数
new Thread(() -> System.out.println("Hello World!"));
public interface Interface1 {
void test();
}
private void func(Interface1 interface1) {
interface1.test();
}
func(() -> System.out.println("Hello World"));
//有参数,参数知名类型更规范
func((Integer x) -> System.out.println("Hello World" + x));
//有参数,有返回值
func((Integer x) -> {
System.out.println("Hello World" + x);
return true;
});