Module java.base
Package java.util.function

# Interface BiPredicate<T,​U>

Type Parameters:
  `T` - the type of the first argument to the predicate
  `U` - the type of the second argument the predicate

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface BiPredicate<T,​U>

Represents a predicate (boolean-valued function) of two arguments. This is the two-arity specialization of `Predicate`.

This is a functional interface whose functional method is `test(Object, Object)`.

Since:
  1.8
See Also:
  `Predicate`

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`default BiPredicate<T,​U>` | `and​(BiPredicate<? super T,​? super U> other)` | Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another.
`default BiPredicate<T,​U>` | `negate()` | Returns a predicate that represents the logical negation of this predicate.
`default BiPredicate<T,​U>` | `or​(BiPredicate<? super T,​? super U> other)` | Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another.
`boolean` | `test​(T t, U u)` | Evaluates this predicate on the given arguments.

## Method Details

### test

boolean test​(T t, U u)
Evaluates this predicate on the given arguments.

Parameters:
  `t` - the first input argument
  `u` - the second input argument
Returns:
  `true` if the input arguments match the predicate, otherwise `false`

### and

default BiPredicate<T,​U> and​(BiPredicate<? super T,​? super U> other)
Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is `false`, then the `other` predicate is not evaluated.

Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the `other` predicate will not be evaluated.

Parameters:
  `other` - a predicate that will be logically-ANDed with this predicate
Returns:
  a composed predicate that represents the short-circuiting logical AND of this predicate and the `other` predicate
Throws:
  `NullPointerException` - if other is null

### negate

default BiPredicate<T,​U> negate()
Returns a predicate that represents the logical negation of this predicate.

Returns:
  a predicate that represents the logical negation of this predicate

### or

default BiPredicate<T,​U> or​(BiPredicate<? super T,​? super U> other)
Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is `true`, then the `other` predicate is not evaluated.

Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the `other` predicate will not be evaluated.

Parameters:
  `other` - a predicate that will be logically-ORed with this predicate
Returns:
  a composed predicate that represents the short-circuiting logical OR of this predicate and the `other` predicate
Throws:
  `NullPointerException` - if other is null