文章目录
- 一、常用的函数值接口
- 1、java.util.function.Function<T, R>
- 2、java.util.function.Predicate<T>
- 3、java.util.function.Consumer<T>
- 4、java.util.function.Supplier<T>
- 5、java.util.function.UnaryOperator<T>
- 6、java.util.function.BinaryOperator<T>
- 7、java.util.function.BiFunction<T, U, R>
- 8、java.util.function.BiPredicate<T, U>
- 9、java.util.function.BiConsumer<T, U>
一、常用的函数值接口
1、java.util.function.Function<T, R>
Function接口的特点是:有输入、有输出
Function<Integer, String> toStringFunction = x -> String.valueOf(x);
2、java.util.function.Predicate
这个接口表示一个布尔值函数,它确定指定的对象是否满足某个条件。
Predicate<String> isNotEmpty = s -> !s.isEmpty();
3、java.util.function.Consumer
这个接口表示接受一个输入参数并且不返回结果的操作。
@FunctionalInterface
public interface Consumer<T> {
/**
* Performs this operation on the given argument.
*
* @param t the input argument
*/
void accept(T t);
}
Consumer<String> printString = s -> System.out.println(s);
4、java.util.function.Supplier
这个接口表示一个无参数并产生一个结果的函数。
Supplier<Integer> getRandom = () -> new Random().nextInt();
5、java.util.function.UnaryOperator
这个接口表示对类型为T的对象进行一元操作并返回相同类型结果的函数。
UnaryOperator<Integer> increment = x -> x + 1;
6、java.util.function.BinaryOperator
这个接口表示接受两个类型为T的参数并产生一个类型为T结果的操作。
BinaryOperator<Integer> add = (x, y) -> x + y;
7、java.util.function.BiFunction<T, U, R>
这个接口表示接受两个参数并产生一个结果的函数。
BiFunction<Integer, Integer, Integer> multiply = (x, y) -> x * y;
8、java.util.function.BiPredicate<T, U>
这个接口表示一个接受两个输入参数并返回一个布尔值的函数。
BiPredicate<String, String> isEqual = (s1, s2) -> s1.equals(s2);
9、java.util.function.BiConsumer<T, U>
BiConsumer<String, Integer> printWithLength = (s, length) -> System.out.println(s + " has length " + length);