Java8新特性

 一、Java8新特性

1.Lambda表达式

 Lambda是匿名函数,使用它可以写出简洁,灵活的代码。

    a.表达式无参数,无返回值,只有一个Lambda体

 Runnable  r1 = () -> log.info("hello world");

    b.表达式有参数,无返回值,

 Runnable r1 = (s) -> log.info(s);

    c.只有一个参数时,可省略()

    Runnable r1 = s -> log.info(s);

    d. 两个参数,有返回值

 Comparator<Integer>  comp = (o1,o2) -> {

  log.info("o1:{}",o1);

  log.info("o2:{}",o2);

  return (o1<o2)?o1:o2;

  };

  e.一条语句,return 和{}可省略

  Comparator<Integer> comp = (o1,o2) -> (o1<o2)?o1:o2;

 二、方法引用和构造器引用

1、方法引用:当要穿戴给Lambda体的操作已经有实现方法,可以直接使用方法引用(实现抽象方法的列表,必须要和方法引用的方法参数列表一致)方法引用:使用操作符“::”来将

方法和(类或者对象)分割开来

有三种情况:

a.对象::实例方法

b.类::实例方法

c.类::静态方法

三、Stream API

1.Stream API在java.util.stream包中,提供了一种高效且易于使用的处理数据方式

2.Stream特点:

  *Stream自己不会存储数据

  *Stream不会改变源对象

  *Stream操作时延迟执行的

3.Stream操作的步骤

  *Stream:要给数据源,获取一个流

  *中间操作:一个中间操作连接,对数据源的数据进行处理

  *终止操作:一个终止操作,执行中间操作,产生结果

创建流方式有多种:

第一种:通过集合,对于Collection接口(list,set,queue)直接调用Stream()可以获取stream

List<String> list = new ArrayList<>();

Stream<String> stringstream = list.stream();

Stream<String> parallelStream = list.parallelStream();

第二种:通过数组

Stream<String> stream = Arrays.stream(new String[]{});

第三种:Stream.of

Stream<String> stream = Stream.of("A","B","C","D");

 

 

    

 

posted @ 2022-12-14 13:51  Morgen会蝎子摆尾  阅读(13)  评论(0编辑  收藏  举报