JDK1.8新特性

1、Lambda                                                           

Lambda的语法目前仅对于只有一个抽象方法的接口。

在Lambda项目中,早期称为SAM类型(SAM = single abstract method 单一抽象方法)。在jdk1.8中,叫函数接口(functional interface)。比如Runnable,Callable,Comparator。

lambda语法包含三部分:a、参数列表;b、箭头符号“->”;c、代码块。

(arg1,arg2)->{Statement};

只有一个参数可以写成:arg->{Statement};

代码块类似方法体,return语句将控制权交还给匿名方法(即Lambda表达式)的调用者。如果代码块只有一行,可以省略return关键字和{}括号。

1 import java.util.Comparator;
2 public class TestLambda {
3     public static void main(String[] args) {
4         Runnable r = ()->{System.out.println("hello world");};
5         Comparator<String> c = (String s1,String s2)->s2.length()-s1.length();
6         r.run();
7         System.out.println(c.compare("s1", "12323"));
8     }
9 }

结果是:

1 hello world
2 3

我们也可以自定义函数接口

1 public class TestLambda {
2     interface testlambdainterface{
3         public void me(String str);
4     }
5     public static void main(String[] args) {
6         testlambdainterface tli = (String s)->{System.out.println(s);};
7         tli.me("hello world");
8     }
9 }

2、Stream类                                                           

提供了只保存算法的一个类,是一个高版本的Iterator。

可以通过Collection.stream()方法产生,静态方法LongStream.of(1,2,3,4)和自定义。

转载于:https://www.cnblogs.com/fankongkong/p/7410205.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值