`

java8新特性:Predicate<T> function函数方法使用

    博客分类:
  • java
 
阅读更多

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【函数式接口】【定义与使用】【源码】

    JDK1.8【函数式接口】【定义与使用】【源码】 ...函数型 Function&lt;T,R&gt; return:&lt;R&gt; * 4.断言型 Predicate&lt;T&gt; return:boolean * &lt;p&gt; * 参数使用形式 * 形式1:传递函数式接口对象 * 形式2:形参上直接写表达式

    Java 8 的 Consumer、Supplier、Predicate和Function理解

    总之,理解并熟练使用Java 8的Consumer、Supplier、Predicate和Function接口,对于提升代码质量、减少冗余代码以及编写更高效的程序具有重要意义。在日常开发中,应尽可能利用这些接口来实现简洁的函数式编程风格。

    JAVA8新特性各种用法详解

    本文将详细解析Java 8新特性中的几个关键点,包括Lambda表达式的使用、内置函数式接口的介绍以及如何利用这些接口进行高效编程。 #### 二、Lambda表达式与访问接口的默认方法 **Lambda表达式**是一种简洁的方法来...

    Java使用函数式接口.pdf

    在Java 8中,`java.util.function`包下引入了一系列新的函数式接口,如`Predicate&lt;T&gt;`、`Consumer&lt;T&gt;`和`Function&lt;T, R&gt;`。这些接口极大地丰富了开发者处理数据的方式。 1. `Predicate&lt;T&gt;`:此接口定义了一个`test...

    day13_Stream流_每日作业卷-答案2

    本文主要涉及Java 8中的两个核心接口:`Predicate`和`Function`,它们都是函数式接口,属于Java的Stream API的一部分。我们来详细解析这两个接口以及如何使用它们。 1. `Predicate&lt;T&gt;`接口: `Predicate&lt;T&gt;`接口...

    day13【Stream流】.md

    本章节重点介绍了 Java 8 中 Stream 流的基本概念、特点以及与集合类之间的差异,并深入探讨了函数式接口(特别是 `Predicate&lt;T&gt;`)的使用方法。通过具体示例,我们还学习了如何获取 Stream 流、执行常见操作以及...

    java8新特性包含 lambda 函数式接口,stream 流

    Java 8 在 `java.util.function` 包下定义了一系列预定义的函数式接口,如 `Function&lt;T, R&gt;`、`Predicate&lt;T&gt;`、`Consumer&lt;T&gt;` 和 `Supplier&lt;T&gt;` 等,这些接口广泛应用于函数式编程场景。 ### Stream API Stream ...

    Java8实战笔记.pdf

    在Java 8中,常见的函数式接口包括Predicate&lt;T&gt;、Consumer&lt;T&gt;、Function&lt;T,R&gt;、Supplier&lt;T&gt;等。Predicate&lt;T&gt;用于测试对象是否满足特定条件,Consumer&lt;T&gt;用于消费对象而无返回值,Function&lt;T,R&gt;用于接收参数并返回一...

    java8新特性,Lambda表达式

    Java 8是Java编程语言的一个重大更新,引入了许多新特性,其中最为显著的就是Lambda表达式。Lambda表达式是函数式编程的关键元素,它允许我们以更简洁的方式编写匿名函数,从而简化了处理集合数据和事件驱动编程的...

    java-jdk1.8

    jdk1.8.0_131-的一些新特性 1.接口的扩展方法 2. 函数式接口,方法与构造方法...3.其余的一些接口:Predicate&lt;T&gt;接口/Optional&lt;T&gt;类/Function接口、Supplier 接口、Consumer 接口等 4.lamdba表达式的用法 5. 时间表达式

    Predicate使用方法

    Predicate是编程语言中的一种常见概念,特别是在面向对象的语言如Java、C#等中,它代表一个可以返回布尔值的函数或方法,常用于过滤、查询数据。Predicate的主要用途是作为参数传递给各种高阶函数,比如`filter()`、...

    java8的10大特性

    Java 8 是一个重要的Java平台版本,引入了许多新特性,极大地提升了开发效率和代码的简洁性。以下是Java 8的10大特性中的主要部分,尤其是Lambda表达式和函数式接口。 1. **Lambda表达式** - Lambda表达式是一种...

    java7源码-java8:java8函数式编程

    最重要的几个函数接口:(Predicate&lt;T&gt;,Consumer&lt;T&gt;,Function&lt;T&gt;,Supplier&lt;T&gt;,UnaryOperator&lt;T&gt;,BinaryOperator&lt;T&gt; 类型推断 流(Stream) 和Iterator类似,是使用内部迭代,经常和Lambda表达式配合使用,可自动并行...

    Java8新特性教程(含代码).docx

    ### Java 8 新特性教程 #### 一、Lambda 表达式 Lambda 表达式是 Java 8 引入的一项重要新特性,它极大简化了编写匿名内部类的过程,提高了代码的简洁性和可读性。 **基础语法:** 1. **无参数,无返回值:** `...

    【Java面试系列】JDK 1.8 新特性之 Stream API.pdf

    - `map(Function&lt;T, R&gt; mapper)`:转换 Stream 中的元素。 - `distinct()`:去除重复的元素。 - `sorted(Comparator&lt;T&gt; comparator)`:排序。 3. **终止操作**: - `forEach(Consumer&lt;T&gt; action)`:遍历 Stream...

    java 8 新特性详细讲解(自己整理)

    ### Java 8 新特性详细讲解 #### 一、Lambda 表达式 Lambda表达式是Java 8中引入的一个重要特性,它允许开发者编写简洁、灵活的代码,将代码像数据一样传递。Lambda表达式的基本结构包括参数列表、箭头符号`-&gt;`...

    深入理解Java函数式编程和Streams API

    Java 8中提供了一些预定义的函数式接口,如`Predicate&lt;T&gt;`、`Function&lt;T,R&gt;`、`Consumer&lt;T&gt;`等。 - **示例**: ```java Predicate&lt;String&gt; predicate = (s) -&gt; s.length() &gt; 3; boolean result = predicate.test...

    Java8 新特性.rar

    Java8提供了一些内置的函数式接口,如`Function&lt;T, R&gt;`、`Predicate&lt;T&gt;`和`Consumer&lt;T&gt;`等。开发者还可以自定义函数式接口,以适应特定的需求。 **3. Stream API** Stream API是处理集合数据的一种新方式,它提供...

    Java8-JDK8-新特性学习

    这些接口只能有一个抽象方法,如`Runnable`、`Callable`以及新的`Function`、`Predicate`、`Consumer`等。`@FunctionalInterface`注解用于标记此类接口。 3. **Stream API**:Stream API提供了一种处理数据集合的新...

Global site tag (gtag.js) - Google Analytics