`
等牛奶的咖啡
  • 浏览: 7462 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JDK8 Predicate、Consumer、Function、Supplier

    博客分类:
  • JAVA
 
阅读更多

1. Predicate

判断输入的对象是否符合某个条件,Predicate 是一个布尔类型的函数,该函数只有一个输入参数。可以通过 and、or 将多个 Predicate 组合成一个复杂的逻辑。

Predicate<String> p = x -> x.length() > 3;

p.test("123");  // true
p.negate().test("123");  // false
p.and(x -> x.length() < 5).test("1234567");  // false
p.or(x -> x.length() < 5).test("1234567");   // true

 

2. Consumer

Predicate 是对参数的判断,Consumer 是表示一个接受单个输入参数并且没有返回值的操作

Consumer<String> c = p -> System.out.println("coffee" + p);
c.accept("Test");   // coffeeTest

 

3. Function

Consumer 是对传入的参数做一个 void 操作,Function 则是对传入的参数做相应的处理,返回一个定义的类型。Function 执行的入口是 apple 接口

Function<Integer, String> f = x -> x + "123";
System.out.println(f.apply(0));

 

4. Supplier

Supplier 和 Function 一样返回一个定义的类型,不同的是,不需要参数

Supplier<Double> s = Math::random;
System.out.println(s.get());

 

分享到:
评论

相关推荐

    JDK8 中文帮助文档(jdk api 1.8 google.CHM)

    为了支持Lambda,JDK8定义了一些新的函数式接口,如`Function,R&gt;`、`Consumer&lt;T&gt;`、`Supplier&lt;T&gt;`、`Predicate&lt;T&gt;`等,这些接口都只有一个抽象方法,是Lambda表达式的载体。 **3. 方法引用和构造器引用** 除了...

    JDK8 API 中文 文档.CHM

    2. **函数式接口**:为了支持lambda,Java定义了一系列函数式接口,如`Runnable`、`Callable`、`Consumer`、`Supplier`、`Predicate`、`Function`等。这些接口只有一个抽象方法,可以隐式转换为lambda表达式。 3. *...

    JDK8全面认识

    JDK 8中的java.util.function包提供了许多内置的函数式接口,比如Predicate、Consumer、Function和Supplier,它们分别用于处理判断条件、消费数据、函数转换和提供结果。这些接口的引入让lambda表达式能够更加通用和...

    [JAVA教程] 张老师JDK8实战视频教程 51集JDK8专业标准学习课程 全新JDK新特性与实战教学.rar

    7. **函数式接口**:JDK8引入了一些内置的函数式接口,如Function、Predicate、Consumer和Supplier等,它们是Lambda表达式的主要应用场景,用于描述各种类型的函数行为。 8. **集合工厂方法**:Java 8对集合框架...

    JDK8中文API

    2. **函数式编程**:Java 8增强了对函数式编程的支持,增加了`java.util.function`包,包含多种函数接口,如`Predicate`(断言)、`Function`(函数)、`Consumer`(消费者)、`Supplier`(供应商)等,这些接口允许...

    JDK8官方英文文档

    这些接口有一个并且仅有一个抽象方法,如`Runnable`, `Callable`, `Consumer`, `Supplier`等。`Function`, `Predicate`, `BiFunction`等接口则用于函数式编程中的转换、过滤和组合操作。 3. **Stream API** Stream...

    JDK8 Demos and Samples.zip

    这些接口可以作为Lambda的目标类型,如`java.util.function`包下的`Predicate`, `Function`, `Consumer`, `Supplier`等。 3. **Stream API**:这是一个强大的新工具,可以对集合进行一系列操作,如过滤、映射、排序...

    jdk-8u111-windows-x64.rar

    函数式编程接口如java.util.function包中的Predicate、Function、Consumer和Supplier等,为Java提供了更丰富的函数式编程支持。这些接口可以用于方法引用和lambda表达式,使代码更易于理解和测试。 Stream API...

    jdk-8u152-windows-i586

    3. **函数式编程接口**: Java 8引入了`java.util.function`包,其中包含许多预定义的函数式接口,如Predicate、Function、Consumer和Supplier,这些接口使得代码更加模块化和可读。 4. **Stream API**: Stream API...

    java jdk 8 帮助文档 中文 文档 chm 谷歌翻译(jdk api 1.8_google)

    7. **类型接口**:引入了类型接口,如`Supplier&lt;T&gt;`, `Function,R&gt;`, `Predicate&lt;T&gt;`等,这些接口是函数式编程的关键部分,允许以类型安全的方式处理函数对象。 8. **新的集合工厂方法**:`Collections`, `List`, `...

    JDK8-Windows64

    为了支持 Lambda 表达式,JDK8 引入了新的函数式接口,如 `java.util.function` 包下的 `Function`, `Predicate`, `Consumer`, `Supplier` 等。这些接口允许将 Lambda 表达式作为参数传递,增强了方法引用和构造器...

    windwos java jdk1.8 64位 jdk-8u371-windows-x64

    3. **函数式接口**:与Lambda表达式关联,Java 1.8引入了函数式接口的概念,如`Runnable`, `Callable`和新添加的`Consumer`, `Supplier`, `Predicate`, `Function`等。这些接口只有一个抽象方法,可以用作Lambda...

    jdk-8u181-windows-x64.rar

    `Supplier`, `Consumer`, `Function`等接口为函数式编程提供了基础。 8. **增强的for循环(enhanced for loop)**:现在可以用`yield`关键字在增强的for循环中返回值,这对于生成器和迭代器模式非常有用。 9. **并行...

    jdk-8u251-windows-i586.zip

    Java 8提供了一些内置的函数式接口,如`Runnable`, `Consumer`, `Supplier`, `Function`, `Predicate`等。 3. **Stream API**:Stream API提供了一种处理集合数据的新方式,支持并行和串行操作,可以进行过滤、映射...

    jdk-8u241_64.zip

    7. **新的类型接口**:如`Supplier`, `Consumer`, `Function`和`Predicate`等,这些接口作为函数式编程的基础,使开发者能够更灵活地处理函数和行为。 8. ** Nashorn JavaScript引擎**:JDK 8集成了Nashorn ...

    JDK1.8 Java 官方 jdk-8u181-windows-x64.rar

    JDK 1.8新增了多个函数式接口,如Supplier、Consumer、Function、Predicate等,这些接口极大地丰富了Java的函数式编程能力。 3. **Stream API** Stream API是JDK 1.8引入的新特性,提供了一种处理数据集合的新方式...

    jdk1.8 doc(jdk-8u191-docs-all)

    Java 8引入了一些内置的函数式接口,如`Runnable`, `Callable`, `Consumer`, `Supplier`, `Predicate`, `Function`等。docs中会详细解释每个接口的用途和用法。 3. **Stream API**:Stream API是Java 8的一个重要...

    JDK 8 en chm

    JDK 8 添加了一些预定义的函数式接口,如 Consumer、Supplier、Function 和 Predicate,这些接口在处理集合和流操作时非常有用。 **4. Stream API** Stream API 是 JDK 8 的一大亮点,它提供了一种声明式处理数据...

    jdk8新特性学习代码

    这极大地简化了处理集合、事件监听器等场景的代码,如`Function`、`Predicate`和`Consumer`接口的使用。 2. **函数式接口**: 为了支持lambda表达式,Java 8引入了“函数式接口”这个概念。这些接口只有一个抽象...

    JAVA JDK8 新特性代码详细讲解

    Java 8定义了一些内置的函数式接口,如Function、Predicate、Supplier等,方便开发者使用Lambda表达式。 九、新的集合工厂方法 Java 8在集合接口中添加了新的工厂方法,如`Collectors.toList()`,使创建集合变得更...

Global site tag (gtag.js) - Google Analytics