ava8中的function函数方法是jdk1.8的新特性,其中的Predicate<T>方法使用非常广泛,predicate英文为断言,判断。Predicate <T>接口是一个函数式接口,里面返回Boolean值true或者false的test(Object)方法非常有用,下面以一个例子来让各位体会Predicate<T> function函数的好处。
说明:以下方法中例如“n -> true”这样的语句是java8新特性中的Lambda表达式,其构成部分是parameter -> expression body,“->”符号左边是参数,右边是方法体。
import java.util.Arrays; import java.util.List; import java.util.function.Predicate; public class PredicateDemo { public static void main(String[] args) { //给list添加参数 List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); System.out.println("输出所有参数字:"); eval(list, n -> true); System.out.println("\n输出能被2整除的数字:"); eval(list, n -> n%2==0); System.out.println("\n输出大于3的数字:"); eval(list, n-> n > 3 ); } //自定义方法 public static void eval(List<Integer> list, Predicate<Integer> predicate) { for(Integer n: list) { if(predicate.test(n)) { //可以将满足条件的参数返回,这里只做输出 System.out.print(n + " "); } } } }
以上的代码运行后输出的结果如下。
输出所有参数字: 1 2 3 4 5 6 7 8 9 输出能被2整除的数字: 2 4 6 8 输出大于3的数字: 4 5 6 7 8 9
大家知道了java8中Predicate<T>函数式方法的好处了吧,一个方法多种使用!
转自:http://www.tpyyes.com/a/java/2017/0709/136.html
相关推荐
JDK1.8【函数式接口】【定义与使用】【源码】 ...函数型 Function<T,R> return:<R> * 4.断言型 Predicate<T> return:boolean * <p> * 参数使用形式 * 形式1:传递函数式接口对象 * 形式2:形参上直接写表达式
总之,理解并熟练使用Java 8的Consumer、Supplier、Predicate和Function接口,对于提升代码质量、减少冗余代码以及编写更高效的程序具有重要意义。在日常开发中,应尽可能利用这些接口来实现简洁的函数式编程风格。
本文将详细解析Java 8新特性中的几个关键点,包括Lambda表达式的使用、内置函数式接口的介绍以及如何利用这些接口进行高效编程。 #### 二、Lambda表达式与访问接口的默认方法 **Lambda表达式**是一种简洁的方法来...
在Java 8中,`java.util.function`包下引入了一系列新的函数式接口,如`Predicate<T>`、`Consumer<T>`和`Function<T, R>`。这些接口极大地丰富了开发者处理数据的方式。 1. `Predicate<T>`:此接口定义了一个`test...
本文主要涉及Java 8中的两个核心接口:`Predicate`和`Function`,它们都是函数式接口,属于Java的Stream API的一部分。我们来详细解析这两个接口以及如何使用它们。 1. `Predicate<T>`接口: `Predicate<T>`接口...
本章节重点介绍了 Java 8 中 Stream 流的基本概念、特点以及与集合类之间的差异,并深入探讨了函数式接口(特别是 `Predicate<T>`)的使用方法。通过具体示例,我们还学习了如何获取 Stream 流、执行常见操作以及...
Java 8 在 `java.util.function` 包下定义了一系列预定义的函数式接口,如 `Function<T, R>`、`Predicate<T>`、`Consumer<T>` 和 `Supplier<T>` 等,这些接口广泛应用于函数式编程场景。 ### Stream API Stream ...
在Java 8中,常见的函数式接口包括Predicate<T>、Consumer<T>、Function<T,R>、Supplier<T>等。Predicate<T>用于测试对象是否满足特定条件,Consumer<T>用于消费对象而无返回值,Function<T,R>用于接收参数并返回一...
Java 8是Java编程语言的一个重大更新,引入了许多新特性,其中最为显著的就是Lambda表达式。Lambda表达式是函数式编程的关键元素,它允许我们以更简洁的方式编写匿名函数,从而简化了处理集合数据和事件驱动编程的...
jdk1.8.0_131-的一些新特性 1.接口的扩展方法 2. 函数式接口,方法与构造方法...3.其余的一些接口:Predicate<T>接口/Optional<T>类/Function接口、Supplier 接口、Consumer 接口等 4.lamdba表达式的用法 5. 时间表达式
Predicate是编程语言中的一种常见概念,特别是在面向对象的语言如Java、C#等中,它代表一个可以返回布尔值的函数或方法,常用于过滤、查询数据。Predicate的主要用途是作为参数传递给各种高阶函数,比如`filter()`、...
Java 8 是一个重要的Java平台版本,引入了许多新特性,极大地提升了开发效率和代码的简洁性。以下是Java 8的10大特性中的主要部分,尤其是Lambda表达式和函数式接口。 1. **Lambda表达式** - Lambda表达式是一种...
最重要的几个函数接口:(Predicate<T>,Consumer<T>,Function<T>,Supplier<T>,UnaryOperator<T>,BinaryOperator<T> 类型推断 流(Stream) 和Iterator类似,是使用内部迭代,经常和Lambda表达式配合使用,可自动并行...
### Java 8 新特性教程 #### 一、Lambda 表达式 Lambda 表达式是 Java 8 引入的一项重要新特性,它极大简化了编写匿名内部类的过程,提高了代码的简洁性和可读性。 **基础语法:** 1. **无参数,无返回值:** `...
- `map(Function<T, R> mapper)`:转换 Stream 中的元素。 - `distinct()`:去除重复的元素。 - `sorted(Comparator<T> comparator)`:排序。 3. **终止操作**: - `forEach(Consumer<T> action)`:遍历 Stream...
### Java 8 新特性详细讲解 #### 一、Lambda 表达式 Lambda表达式是Java 8中引入的一个重要特性,它允许开发者编写简洁、灵活的代码,将代码像数据一样传递。Lambda表达式的基本结构包括参数列表、箭头符号`->`...
Java 8中提供了一些预定义的函数式接口,如`Predicate<T>`、`Function<T,R>`、`Consumer<T>`等。 - **示例**: ```java Predicate<String> predicate = (s) -> s.length() > 3; boolean result = predicate.test...
Java8提供了一些内置的函数式接口,如`Function<T, R>`、`Predicate<T>`和`Consumer<T>`等。开发者还可以自定义函数式接口,以适应特定的需求。 **3. Stream API** Stream API是处理集合数据的一种新方式,它提供...
这些接口只能有一个抽象方法,如`Runnable`、`Callable`以及新的`Function`、`Predicate`、`Consumer`等。`@FunctionalInterface`注解用于标记此类接口。 3. **Stream API**:Stream API提供了一种处理数据集合的新...