Java8 java.util.function 包

java.util.function.Predicate<T>

这里Lambda表达式定义的是test方法,返回一个布尔值

package com.stream;

import java.util.function.Predicate;
import java.util.stream.Stream;

public class TestStream2 {
    public static void main(String args[]){
        
        Predicate<Integer> p = (i -> i>10);
        long count = Stream.of(1,2,3,11,12).filter(p).count();
        
        System.out.println(count);
        
    }
}

java.util.function.Consumer<T> 定义了一个叫accept的抽象方法

package com.stream;

import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Stream;

public class TestStream3 {
    public static void main(String args[]){
        Consumer<Integer> p = (System.out::println);
        Stream.of(1,2,3,11,12).forEach(p);
    }
}

java.util.function.Function<T,R>接口定义了一个叫做apply的方法

package com.stream;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Stream;

public class TestStream4 {
    public static void main(String args[]){
        Function<Integer,Integer> f = (i->i+1);
        Consumer<Integer> c = (System.out::println);
        Stream.of(1,2,3,11,12).map(f).forEach(c);;
    }
}