首页 > 编程语言 > 详细

Java8中Lambda和Stream流

时间:2020-12-07 18:19:15      阅读:37      评论:0      收藏:0      [点我收藏+]

Lambad表达式

含义

??Lambda和匿名内部类的功能是一样的,不过Lambad会比匿名内部类更加特殊,它一般是作用于只有一个抽象方法的接口,这种接口是函数式接口(接口需要添加@FunctionalInterface)。

 

 抽象方法
Consumere<T>消费型 有参数无返回值
Supplier<T>供给型 无参数有返回值
Function<T>函数型 有参数有返回值
Predicate<T>判断型 有参数有返回值,但返回值为boolean

使用

 @Test
 public void test (){
  // 一个实现Runnable的子类
    new Thread(()->{
          System.out.println("hello" + Thread.currentThread().getName());
      },"线程1").start();
  }

解析

lambad可分为俩部分,分别是参数列表和函数体

 // 参数列表
 ()
 ?
 ?
 //函数体
 {
          System.out.println("hello" + Thread.currentThread().getName());
      }

提示

参数列表的类型可以不写,因为它会类型推断

 PriorityQueue<Integer> pq = new PriorityQueue<>((o1,o2) -> {
     return o1 - o2;
 });

如果参数列表只有一个参数可以不写()

如果没有参数不可以省略()

如果函数体只有一行且是返回的语句,那么可以省略{}

 

Stream流

 

之后补充

 

Java8中Lambda和Stream流

原文:https://www.cnblogs.com/matt17/p/14098354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!