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
All Superinterfaces:
BiFunction<T,​U,​Boolean>, BiFunction<T,​U,​Boolean>, BiPredicate<T,​U>
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>
extends BiFunction<T,​U,​Boolean>, 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
    static <T,​ U> BiPredicate<T,​U> alwaysFalse()
    Returns a predicate that is always false.
    static <T,​ U> BiPredicate<T,​U> alwaysTrue()
    Returns a predicate that is always true.
    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 Boolean apply​(T t, U u)
    Applies this function to the given arguments.
    default BooleanSupplier applyPartial​(T t, U u)
    Performs a partial application, resulting in a function that calls this with its argument and the argument given here.
    default Predicate<U> applyPartialL​(T t)
    Performs a partial application, resulting in a function that calls this with its argument and the argument given here.
    default Predicate<T> applyPartialR​(U u)
    Performs a partial application, resulting in a function that calls this with its argument and the argument given here.
    static <T,​ U> BiPredicate<T,​U> isEqual()
    Returns a predicate that tests if two arguments are equal according to Objects.equals(Object, Object).
    default BiPredicate<T,​U> map​(UnaryOperator<Boolean> functor)
    Lift a function.
    default BiPredicate<T,​U> negate()
    Returns a predicate that represents the logical negation of this predicate.
    static <T,​ U> BiPredicate<T,​U> not​(BiPredicate<? super T,​? super U> target)
    Returns a predicate that is the negation of the supplied 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.

    Methods inherited from interface java.util.function.BiFunction

    andThen

    Methods inherited from interface zone.lamprey.function.BiFunction

    consume, map, mapToDouble, mapToInt, mapToLong, predicate

    Methods inherited from interface java.util.function.BiPredicate

    and, or
  • Method Details

    • test

      boolean test​(T t, U u)
      Evaluates this predicate on the given arguments.
      Specified by:
      test in interface BiPredicate<T,​U>
      Parameters:
      t - the first input argument
      u - the second input argument
      Returns:
      true if the input arguments match the predicate, otherwise false
    • apply

      default Boolean apply​(T t, U u)
      Applies this function to the given arguments.
      Specified by:
      apply in interface BiFunction<T,​U,​Boolean>
      Specified by:
      apply in interface BiFunction<T,​U,​Boolean>
      Parameters:
      t - the first function argument
      u - the second function argument
      Returns:
      the function result
    • applyPartial

      default BooleanSupplier applyPartial​(T t, U u)
      Performs a partial application, resulting in a function that calls this with its argument and the argument given here.
      Specified by:
      applyPartial in interface BiFunction<T,​U,​Boolean>
      Parameters:
      t - the first function argument
      u - the second function argument
      Returns:
      the function result
    • applyPartialL

      default Predicate<U> applyPartialL​(T t)
      Performs a partial application, resulting in a function that calls this with its argument and the argument given here.
      Specified by:
      applyPartialL in interface BiFunction<T,​U,​Boolean>
      Parameters:
      t - the function argument
      Returns:
      the function result
    • applyPartialR

      default Predicate<T> applyPartialR​(U u)
      Performs a partial application, resulting in a function that calls this with its argument and the argument given here.
      Specified by:
      applyPartialR in interface BiFunction<T,​U,​Boolean>
      Parameters:
      u - the function argument
      Returns:
      the function result
    • 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
    • map

      default BiPredicate<T,​U> map​(UnaryOperator<Boolean> functor)
      Lift a function.
      Parameters:
      functor - The function to use in lifting.
      Returns:
      A function that passes the result of fn through a functor to produce a lifted function.
    • negate

      default BiPredicate<T,​U> negate()
      Returns a predicate that represents the logical negation of this predicate.
      Specified by:
      negate in interface BiPredicate<T,​U>
      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
    • isEqual

      static <T,​ U> BiPredicate<T,​U> isEqual()
      Returns a predicate that tests if two arguments are equal according to Objects.equals(Object, Object).
      Type Parameters:
      T - the first type of arguments to the predicate.
      U - the second type of arguments to the predicate.
      Returns:
      a predicate that tests if two arguments are equal according to Objects.equals(Object, Object)
    • not

      static <T,​ U> BiPredicate<T,​U> not​(BiPredicate<? super T,​? super U> target)
      Returns a predicate that is the negation of the supplied predicate. This is accomplished by returning result of the calling target.negate().
      Type Parameters:
      T - the type of the first argument to the specified predicate
      U - the type of the second argument to the specified predicate
      Parameters:
      target - predicate to negate
      Returns:
      a predicate that negates the results of the supplied predicate
      Throws:
      NullPointerException - if target is null
      Since:
      11
    • alwaysTrue

      static <T,​ U> BiPredicate<T,​U> alwaysTrue()
      Returns a predicate that is always true.
      Type Parameters:
      T - the first type of arguments to the predicate.
      U - the second type of arguments to the predicate.
      Returns:
      a predicate that is always true.
    • alwaysFalse

      static <T,​ U> BiPredicate<T,​U> alwaysFalse()
      Returns a predicate that is always false.
      Type Parameters:
      T - the first type of arguments to the predicate.
      U - the second type of arguments to the predicate.
      Returns:
      a predicate that is always true.