3 つの入力データ フィールドに基づいてデータを検索する必要があります。ルックアップは高速でなければなりません。ルックアップの組み合わせは 20 通りしかありません。これは、3 つのデータ フィールドを連結してキーを作成する静的な HashMap インスタンスを使用して実装しました。これを行うためのより良い方法はありますか、それともこれが進むべき道ですか? コードは以下です。
更新: このコードが遅いと言っているわけではありません。これを行うためのより良い方法があるかどうかに興味があります。もっとエレガントな解決策があるかもしれないと思っていましたが、説得力のある代替案がない場合は、これをそのままにしておきます!
クラス レベルの静的 HashMap インスタンスを作成します。
private static HashMap map = new HashMap();
データをメモリにロードする方法:
private void load(Iterator iterator) {
while (iterator.next()) {
Object o = it.next();
key = o.getField1() + "-" + o.getField2() + "-" o.getField3();
map.put(key, o.getData());
}
}
そして、3 つのフィールドに基づいてデータを検索する方法は次のとおりです。
private Stirng getData(String f1, String f2, String f3) {
String key = f1 + "-" + f2 + "-" f3;
return map.get(key);
}