compact1, compact2, compact3
java.util.function

## Interface Predicate<T>

Type Parameters:
  `T` - the type of the input to 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 Predicate<T>

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

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

Since:
  1.8

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Default Methods
`default Predicate<T>` `and(Predicate<? super T> other)` Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another.
`static <T> Predicate<T>` `isEqual(Object targetRef)` Returns a predicate that tests if two arguments are equal according to `Objects.equals(Object, Object)`.
`default Predicate<T>` `negate()` Returns a predicate that represents the logical negation of this predicate.
`default Predicate<T>` `or(Predicate<? super T> other)` Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another.
`boolean` `test(T t)` Evaluates this predicate on the given argument.

### Method Detail

#### test

    boolean test(T t)

Evaluates this predicate on the given argument.

Parameters:
  `t` - the input argument
Returns:
  `true` if the input argument matches the predicate, otherwise `false`

#### and

    default Predicate<T> and(Predicate<? super T> 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 Predicate<T> 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 Predicate<T> or(Predicate<? super T> 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> Predicate<T> isEqual(Object targetRef)

Returns a predicate that tests if two arguments are equal according to `Objects.equals(Object, Object)`.

Type Parameters:
  `T` - the type of arguments to the predicate
Parameters:
  `targetRef` - the object reference with which to compare for equality, which may be `null`
Returns:
  a predicate that tests if two arguments are equal according to `Objects.equals(Object, Object)`