我想对java中的元素列表实现一个过滤器方法,这样我就可以根据我的过滤器去掉列表中的一些元素。而且,最重要的是,我希望将界面设计得尽可能简单。
这是我的实现:我创建了一个名为 EasierList 的类,在该类中,我添加了一个方法,其签名和实现如下所示:
public IEasierList<T> filter(ISelection<T> filter) {
List<T> result = new ArrayList<T>();
for(T item : mInternalList) {
if(filter.accept(item)) {
result.add(item);
}
}
mInternalList = result;
return new EasierList<T>(this);
}
至于 ISelection 界面,还是比较简单的:
public boolean accept(T obj);
所以,你可以看出,使用这个类的用户需要编写一些这样的代码来使用过滤器:
aEasierList.filter(new ISelection<T>() {
@Override
public boolean accept(T obj) {
// some test
return false;
}
});
我想知道是否有更好的方法来做到这一点,我的意思是让界面更容易使用?
提前致谢!