private static @NotNull <T> List<T> collect(@NotNull BiPredicate<? super T, ? super T> predicate, T... objects) {
    return isEmpty(objects) ? new ArrayList<>() : collect(predicate, asList(objects));
  }
private static @NotNull <T> List<T> collect(@NotNull BiPredicate<? super T, ? super T> predicate, T... objects)