private static @NotNull <T> List<T> collect(@NotNull BiPredicate<? super T, ? super T> predicate, @NotNull Collection<? extends T> objects) {
    List<T> list = new ArrayList<>(objects.size());
    for (T object : objects) if (object != null) add(predicate, list, object);
    return list;
  }
private static @NotNull <T> List<T> collect(@NotNull BiPredicate<? super T, ? super T> predicate, @NotNull Collection<? extends T> objects)