我正在开发一个服务应用程序。我正在接收一个请求对象,我需要通过一组过滤器传递这个对象并返回响应。我需要大约 10 个过滤器让对象通过。
目前,应用程序正在对每个过滤器进行顺序搜索,如下所示:
public List<Element) FilterA(Request request){
for(Element element in items)
{
// compare element to request object elements
// there are different field checking per object
}
}
所以有 FilterB、FilterC 等。它们都以类似的方式完成,在 for 循环中比较不同的字段。
这可以通过哈希集完成吗?还是二分查找?
或者有没有有效的算法。本质上,我想将 O(n) 改进为更少的东西。