lambda表达式:和增强for一样是替代的方法,简化代码
stream流:和迭代器差不多,
守护线程:主线程结束,子线程就结束了,
lambda表达式
优点:
1)设计的代码更加简洁,易懂
2)不会新建一个对象,也可以说是节省内存空间
概念:
和增强for一样是替代的方法,简化代码,很多语言很早就支持lambda,lambda是一个独立的语法
lambda打破了java面向对象的编程思想,是一个函数式编程--传递的参数是一个方法,不是一个对象
面向对象编程思想:定义类--创建对象--然后传递对象--然后调用方法
函数式编程思想:传递一个方法,直接就可以调用了
函数式接口的概念:有且只有一个抽象方法的接口:函数式接口,通常使用了一个注解来声明@Functionallnterface,表示此接口是一个函数式接口,
可以有其他抽象方法,但必须和Object类中的声明一致
使用前提:
1)面向一个接口,且这个接口只使用一次
2)这个接口中有,且只有一个抽象方法
标准格式:
1)一堆小括号:内可以放形参
2)一个右箭头:这是lambda的特有语法
3)一对大括号:内放方法体,返回值
lambda的省略格式:
1)lambda中的形参的数据类型,可以省略
2)如果lambda的形参只有一个:可以同时(必须同时)省略数据类型 ,一对小括号
3)如果lambda的方法体中只有一句话,可以同时省略:一对大括号,这句话后面的分号,如果有 return语句,可以省略return关键字
Stream流
Stream流的概念:
Java在用于对大量数据进行遍历,筛选,过滤,汇总等操作,她再结合Lambda,可以大大简化我们的代码
获取流的方式:
1)通过Collection类型集合的方式获取流:Collection接口中有一个默认方法,stream()可以获取一个Stream流对象
1)List集合:
List<String> list= new Arraylist<>();
...
Stream<String> stream=list.stream();
2)set集合:
2)通过Map集合获取流:
3)通过引用类型数组,获取流:
方法引用:system.out::println