1.Stream流相比较传统的代码写法,哪些地方做了优化?
(1)简化了代码量,没有冗余的传统代码;
(2)Stream流可以使用lambda,简化了代码量;
(3)Stream流许多方法都可以返回自己本身,可以在使用lambad时,使用链式编程,进一步减少了代码量.
(4)有延迟性,传统代码内(如在方法的参数进行计算时,传统方法不管有没有调用方法都会把方法的参数进行计算),stream流方法filter、map、skip等只是对函数模型进行操作,集合元素并没有被处理,减少了传统代码上不必要的计算从而导致资源浪费.
2.Stream流中延迟方法有哪些,终结方法有哪些,使用了终结方法之后会怎样?
(1)延迟方法: filter(过滤器,用于对数据进行筛选)、map(映射,用于类型转换)、skip(跳过前几个)、limit(只要前几个)、concat(静态方法,合并两个流为一个集合);
(2)终结方法: forEach(消费型接口,用于消费数据)、count(返回一个int值);
(3)将不能再通过链式编程或者Stream对象返回自己本身.
3.什么情况下可以使用方法的引用优化lambda表达式?
(1)先借助一个函数式接口,通过接口使用lambda表达式,在表达式内使用一个(类/对象)中的一个方法时,可以使用方法引用 |