# Java 8 – Functional Interfaces

Functional interfaces have a single functionality to exhibit. For example, a Comparable interface with a single method ‘compareTo’ is used for comparison purpose. Java 8 has defined a lot of functional interfaces to be used extensively in lambda expressions. Following is the list of functional interfaces defined in java.util.Function package.

S. No. | Interface & Description |
---|---|

1 | BiConsumer<T,U>Represents an operation that accepts two input arguments, and returns no result. |

2 | BiFunction<T,U,R>Represents a function that accepts two arguments and produces a result. |

3 | BinaryOperator<T>Represents an operation upon two operands of the same type, producing a result of the same type as the operands. |

4 | BiPredicate<T,U>Represents a predicate (Boolean-valued function) of two arguments. |

5 | BooleanSupplierRepresents a supplier of Boolean-valued results. |

6 | Consumer<T>Represents an operation that accepts a single input argument and returns no result. |

7 | DoubleBinaryOperatorRepresents an operation upon two double-valued operands and producing a double-valued result. |

8 | DoubleConsumerRepresents an operation that accepts a single double-valued argument and returns no result. |

9 | DoubleFunction<R>Represents a function that accepts a double-valued argument and produces a result. |

10 | DoublePredicateRepresents a predicate (Boolean-valued function) of one double-valued argument. |

11 | DoubleSupplierRepresents a supplier of double-valued results. |

12 | DoubleToIntFunctionRepresents a function that accepts a double-valued argument and produces an int-valued result. |

13 | DoubleToLongFunctionRepresents a function that accepts a double-valued argument and produces a long-valued result. |

14 | DoubleUnaryOperatorRepresents an operation on a single double-valued operand that produces a double-valued result. |

15 | Function<T,R>Represents a function that accepts one argument and produces a result. |

16 | IntBinaryOperatorRepresents an operation upon two int-valued operands and produces an int-valued result. |

17 | IntConsumerRepresents an operation that accepts a single int-valued argument and returns no result. |

18 | IntFunction<R>Represents a function that accepts an int-valued argument and produces a result. |

19 | IntPredicateRepresents a predicate (Boolean-valued function) of one int-valued argument. |

20 | IntSupplierRepresents a supplier of int-valued results. |

21 | IntToDoubleFunctionRepresents a function that accepts an int-valued argument and produces a double-valued result. |

22 | IntToLongFunctionRepresents a function that accepts an int-valued argument and produces a long-valued result. |

23 | IntUnaryOperatorRepresents an operation on a single int-valued operand that produces an int-valued result. |

24 | LongBinaryOperatorRepresents an operation upon two long-valued operands and produces a long-valued result. |

25 | LongConsumerRepresents an operation that accepts a single long-valued argument and returns no result. |

26 | LongFunction<R>Represents a function that accepts a long-valued argument and produces a result. |

27 | LongPredicateRepresents a predicate (Boolean-valued function) of one long-valued argument. |

28 | LongSupplierRepresents a supplier of long-valued results. |

29 | LongToDoubleFunctionRepresents a function that accepts a long-valued argument and produces a double-valued result. |

30 | LongToIntFunctionRepresents a function that accepts a long-valued argument and produces an int-valued result. |

31 | LongUnaryOperatorRepresents an operation on a single long-valued operand that produces a long-valued result. |

32 | ObjDoubleConsumer<T>Represents an operation that accepts an object-valued and a double-valued argument, and returns no result. |

33 | ObjIntConsumer<T>Represents an operation that accepts an object-valued and an int-valued argument, and returns no result. |

34 | ObjLongConsumer<T>Represents an operation that accepts an object-valued and a long-valued argument, and returns no result. |

35 | Predicate<T>Represents a predicate (Boolean-valued function) of one argument. |

36 | Supplier<T>Represents a supplier of results. |

37 | ToDoubleBiFunction<T,U>Represents a function that accepts two arguments and produces a double-valued result. |

38 | ToDoubleFunction<T>Represents a function that produces a double-valued result. |

39 | ToIntBiFunction<T,U>Represents a function that accepts two arguments and produces an int-valued result. |

40 | ToIntFunction<T>Represents a function that produces an int-valued result. |

41 | ToLongBiFunction<T,U>Represents a function that accepts two arguments and produces a long-valued result. |

42 | ToLongFunction<T>Represents a function that produces a long-valued result. |

43 | UnaryOperator<T>Represents an operation on a single operand that produces a result of the same type as its operand. |

## Functional Interface Example

Predicate <T> interface is a functional interface with a method test(Object) to return a Boolean value. This interface signifies that an object is tested to be true or false.

## Leave A Comment?