docs: public static <T> Collection<T> filter(Collection<T> data, Filter<T> filter) {
          if (!Utils.isEmpty(data)) {
              Iterator<T> iterator = data.iterator();
              while (iterator.hasNext()) {
                  T item = iterator.next();
                  if (!filter.accept(item)) {
                      iterator.remove();
                  }
              }
          }
          return data;
      }