public static <T> LinkedList<T> filter(Collection<T> collection, Filter<T> filter) {
   LinkedList<T> filtered = new LinkedList<T>();
   for (T t : collection) {
     if (!filter.isOut(t)) {
       filtered.add(t);
     }
   }
   return filtered;
 }