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

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

猜你喜欢

转载自z1414644039.iteye.com/blog/2418529