code: public static <T> List<T> filter(List<T> list, Filter<T> filter) {
  		if (null == list || null == filter) {
  			return list;
  		}
  		final List<T> list2 = (list instanceof LinkedList) ? new LinkedList<T>() : new ArrayList<T>(list.size());
  		for (T t : list) {
  			if (filter.accept(t)) {
  				list2.add(t);
  			}
  		}
  		return list2;
  	}
docs: 过滤<br>
  过滤过程通过传入的Filter实现来过滤返回需要的元素内容，这个Filter实现可以实现以下功能：
  
  <pre>
  1、过滤出需要的对象，{@link Filter#accept(Object)}方法返回true的对象将被加入结果集合中
  </pre>
  
  @param <T> 集合元素类型
  @param list 集合
  @param filter 过滤器
  @return 过滤后的数组
  @since 4.1.8