私はサービスであるアプリケーションで作業しています。リクエストオブジェクトを受け取りました。このオブジェクトをフィルタのセットに渡してレスポンスを返す必要があります。オブジェクトを渡す必要がある約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)をもっと改善したいと思っています。あなたはNリストと Fフィルターを持っている場合は
フィルタをスレッド化できますか?それは、少なくとも助けなければならない同じ時間にすべての10を実行します。 – twain249
@ twain249はい私はそれを行うことができますが、フィルターにシーケンスがある場合はどうなりますか?逐次フィルタリングのような? – DarthVader
私はあなたの固有の要件を知らない。フィルタをスレッド化できない場合はできません。データ構造に関しては、それらをソートする方法があります(バイナリ検索を行うことができます)?また、あなたが使用できるキーを持っているなら、 'Map'を構築しようとすることもできます。 – twain249