欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java8中Lambda和Stream流

程序员文章站 2022-09-02 17:37:07
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录Lambad表达式含义使用解析提示Stream流Lambad表达式含义  Lambda和匿名内部类的功能是一样的,不过Lambad会比匿名内部类更加特殊,它一般是作用于只有一个抽象方法的接口,这种接口是函数式接口(接口需要添加@FunctionalInterface)。抽象方法Consumere消费型有参数无返回值Supplier供给型无参数有返回值Function函数型有参数有返回值...

Lambad表达式

含义

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

抽象方法
Consumere消费型 有参数无返回值
Supplier供给型 无参数有返回值
Function函数型 有参数有返回值
Predicate判断型 有参数有返回值,但返回值为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流

之后补充

本文地址:https://blog.csdn.net/matt17/article/details/110823395

相关标签: Java