Top Description Interfaces
module java.base

Package java.util.function


Functional interfaces provide target types for lambda expressions and method references. Each functional interface has a single abstract method, called the functional method for that functional interface, to which the lambda expression's parameter and return types are matched or adapted. Functional interfaces can provide a target type in multiple contexts, such as assignment context, method invocation, or cast context:
// Assignment context
    Predicate<String> p = String::isEmpty;

    // Method invocation context
    stream.filter(e -> e.getSize() > 10)...

    // Cast context
    stream.map((ToIntFunction) e -> e.getSize())...

The interfaces in this package are general purpose functional interfaces used by the JDK, and are available to be used by user code as well. While they do not identify a complete set of function shapes to which lambda expressions might be adapted, they provide enough to cover common requirements. Other functional interfaces provided for specific purposes, such as java.io.FileFilter, are defined in the packages where they are used.

The interfaces in this package are annotated with java.lang.FunctionalInterface. This annotation is not a requirement for the compiler to recognize an interface as a functional interface, but merely an aid to capture design intent and enlist the help of the compiler in identifying accidental violations of design intent.

Functional interfaces often represent abstract concepts like functions, actions, or predicates. In documenting functional interfaces, or referring to variables typed as functional interfaces, it is common to refer directly to those abstract concepts, for example using "this function" instead of "the function represented by this object". When an API method is said to accept or return a functional interface in this manner, such as "applies the provided function to...", this is understood to mean a non-null reference to an object implementing the appropriate functional interface, unless potential nullity is explicitly specified.

The functional interfaces in this package follow an extensible naming convention, as follows:

Since
1.8
See Also
java.lang.FunctionalInterface

Interface Summary

Modifier and TypeInterface and Description
public interface
BiConsumer<
the type of the first argument to the operation
T
,
the type of the second argument to the operation
U
>

Represents an operation that accepts two input arguments and returns no result.

public interface
BiFunction<
the type of the first argument to the function
T
,
the type of the second argument to the function
U
,
the type of the result of the function
R
>

Represents a function that accepts two arguments and produces a result.

public interface
BinaryOperator<
the type of the operands and result of the operator
T
>

Represents an operation upon two operands of the same type, producing a result of the same type as the operands.

public interface
BiPredicate<
the type of the first argument to the predicate
T
,
the type of the second argument the predicate
U
>

Represents a predicate (boolean-valued function) of two arguments.

public interface
BooleanSupplier

Represents a supplier of boolean-valued results.

public interface
Consumer<
the type of the input to the operation
T
>

Represents an operation that accepts a single input argument and returns no result.

public interface
DoubleBinaryOperator

Represents an operation upon two double-valued operands and producing a double-valued result.

public interface
DoubleConsumer

Represents an operation that accepts a single double-valued argument and returns no result.

public interface
DoubleFunction<
the type of the result of the function
R
>

Represents a function that accepts a double-valued argument and produces a result.

public interface
DoublePredicate

Represents a predicate (boolean-valued function) of one double-valued argument.

public interface
DoubleSupplier

Represents a supplier of double-valued results.

public interface
DoubleToIntFunction

Represents a function that accepts a double-valued argument and produces an int-valued result.

public interface
DoubleToLongFunction

Represents a function that accepts a double-valued argument and produces a long-valued result.

public interface
DoubleUnaryOperator

Represents an operation on a single double-valued operand that produces a double-valued result.

public interface
Function<
the type of the input to the function
T
,
the type of the result of the function
R
>

Represents a function that accepts one argument and produces a result.

public interface
IntBinaryOperator

Represents an operation upon two int-valued operands and producing an int-valued result.

public interface
IntConsumer

Represents an operation that accepts a single int-valued argument and returns no result.

public interface
IntFunction<
the type of the result of the function
R
>

Represents a function that accepts an int-valued argument and produces a result.

public interface
IntPredicate

Represents a predicate (boolean-valued function) of one int-valued argument.

public interface
IntSupplier

Represents a supplier of int-valued results.

public interface
IntToDoubleFunction

Represents a function that accepts an int-valued argument and produces a double-valued result.

public interface
IntToLongFunction

Represents a function that accepts an int-valued argument and produces a long-valued result.

public interface
IntUnaryOperator

Represents an operation on a single int-valued operand that produces an int-valued result.

public interface
LongBinaryOperator

Represents an operation upon two long-valued operands and producing a long-valued result.

public interface
LongConsumer

Represents an operation that accepts a single long-valued argument and returns no result.

public interface
LongFunction<
the type of the result of the function
R
>

Represents a function that accepts a long-valued argument and produces a result.

public interface
LongPredicate

Represents a predicate (boolean-valued function) of one long-valued argument.

public interface
LongSupplier

Represents a supplier of long-valued results.

public interface
LongToDoubleFunction

Represents a function that accepts a long-valued argument and produces a double-valued result.

public interface
LongToIntFunction

Represents a function that accepts a long-valued argument and produces an int-valued result.

public interface
LongUnaryOperator

Represents an operation on a single long-valued operand that produces a long-valued result.

public interface
ObjDoubleConsumer<
the type of the object argument to the operation
T
>

Represents an operation that accepts an object-valued and a double-valued argument, and returns no result.

public interface
ObjIntConsumer<
the type of the object argument to the operation
T
>

Represents an operation that accepts an object-valued and a int-valued argument, and returns no result.

public interface
ObjLongConsumer<
the type of the object argument to the operation
T
>

Represents an operation that accepts an object-valued and a long-valued argument, and returns no result.

public interface
Predicate<
the type of the input to the predicate
T
>

Represents a predicate (boolean-valued function) of one argument.

public interface
Supplier<
the type of results supplied by this supplier
T
>

Represents a supplier of results.

public interface
ToDoubleBiFunction<
the type of the first argument to the function
T
,
the type of the second argument to the function
U
>

Represents a function that accepts two arguments and produces a double-valued result.

public interface
ToDoubleFunction<
the type of the input to the function
T
>

Represents a function that produces a double-valued result.

public interface
ToIntBiFunction<
the type of the first argument to the function
T
,
the type of the second argument to the function
U
>

Represents a function that accepts two arguments and produces an int-valued result.

public interface
ToIntFunction<
the type of the input to the function
T
>

Represents a function that produces an int-valued result.

public interface
ToLongBiFunction<
the type of the first argument to the function
T
,
the type of the second argument to the function
U
>

Represents a function that accepts two arguments and produces a long-valued result.

public interface
ToLongFunction<
the type of the input to the function
T
>

Represents a function that produces a long-valued result.

public interface
UnaryOperator<
the type of the operand and result of the operator
T
>

Represents an operation on a single operand that produces a result of the same type as its operand.