code: public static <T> Collection<T> filter(Collection<T> collection, Editor<T> editor) {
  		if (null == collection || null == editor) {
  			return collection;
  		}
  
  		Collection<T> collection2 = ObjectUtil.clone(collection);
  		try {
  			collection2.clear();
  		} catch (UnsupportedOperationException e) {
  			// 克隆后的对象不支持清空，说明为不可变集合对象，使用默认的ArrayList保存结果
  			collection2 = new ArrayList<>();
  		}
  
  		T modified;
  		for (T t : collection) {
  			modified = editor.edit(t);
  			if (null != modified) {
  				collection2.add(modified);
  			}
  		}
  		return collection2;
  	}
docs: 过滤<br>
  过滤过程通过传入的Editor实现来返回需要的元素内容，这个Editor实现可以实现以下功能：
  
  <pre>
  1、过滤出需要的对象，如果返回null表示这个元素对象抛弃
  2、修改元素对象，返回集合中为修改后的对象
  </pre>
  
  @param <T> 集合元素类型
  @param collection 集合
  @param editor 编辑器接口
  @return 过滤后的集合