本文共 3207 字,大约阅读时间需要 10 分钟。
为什么使用java8新特性?
java8是oracle公司于2014年3月发布,可以看成是自java5以来最具革命性的版本。java8为 java语言、编译器、类库、开发工具与JVM带来了大量新特性
Lambda是一个匿名函数,我们可以把lambda表达式理解为是一段可以传递的代码(代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使java的语言表达能力得到了提示。
举例:(o1,o2)->{Integer.compare(o1,o2)}
格式:
->右边:lambda操作符或箭头操作符
->左边:lambda形参列表
->{ 重写方法的方法体 }
3.lambda表达式的六种使用方式
//第一种无参无返LambdaInterface01 lambdaInterface01 = () -> { System.out.println("lambda第一种形式,无参无返形式");};//通过lambda接口实例调用方法lambdaInterface01.LambdaInfo();System.out.println("------------------------------");//第二种有参无返LambdaInterface02 lambdaInterface02 = (String param) -> { System.out.println("lambda第二种形式,有参无返使用,参数是:" + param);};lambdaInterface02.LambdaInfo("周高帆");System.out.println("------------------------------");/*第三种,参数类型可以省略,参数名可以重新定义,因为可以通过编译器推断得出 称为“类型推断” */LambdaInterface03 lambdaInterface03=(param1, param2)->{ System.out.println("lambda第三种形式,类型推断,参数1:"+param1+",参数2:"+param2);};lambdaInterface03.LambdaInfo("我是参数1",2);System.out.println("------------------------------");//第四种:参数为一个时,()可以省略,例如:param->{内容}LambdaInterface04 lambdaInterface04=param -> { System.out.println("lambda第四种形式,参数为单个时可以省略():"+param);};lambdaInterface04.LambdaInfo("我是第四种形式");System.out.println("------------------------------");//lambda第五种形式,lambda返回值LambdaInterface05 lambdaInterface05=(param1, param2) -> { System.out.println("Lambda第五种形式,带有返回值"); return param1+param2;};String result1=lambdaInterface05.LambdaInfo("Hello","Word");System.out.println("------------------------------");//lambda第六种形式,方法体内只有一条代码的话,{}和return都可以省略LambdaInterface06 lambdaInterface06=() ->"我是第六种形式";String result2=lambdaInterface06.LambdaInfo();
4.lambda的本质:作为函数式接口的实例
1.消费型接口Consumer,方法 void accept(T t);
2.供给型接口Supplier,方法 T get();
3.函数型接口Function<T,R>方法 R apply(T t);
4.断定型接口Predicate 方法 boolean test(T t);
是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。
“集合讲的是数据,Stream讲的是计算”
注意:
Stream自己不会存储元素。
Stream不会改变源对象,相反,他们会返回一个持有结果的新Stream。
Stream操作是延迟执行的,这意味着他们会等到需要结果的时候才执行。
创建Stream
中间操作
终止操作(终端操作)
tream
一个数据源(如:集合、数组),获取一个流
中间操作
终止操作(终端操作)
转载地址:http://qmqzi.baihongyu.com/