code: public static <T> List<T> filter(final Iterable<T> unfiltered, final Predicate<T> filter) {
          return newArrayList(Iterables.filter(unfiltered, filter));
      }
docs: Returns the elements of {@code unfiltered} that satisfy given {@code filter}. The
  resulting iterable's iterator does not support {@code remove()}.