Нам нужно найти некоторые данные на основе трех полей входных данных. Поиск должен быть быстрым. Есть только около 20 возможных комбинаций поиска. Мы реализовали это с использованием статического экземпляра HashMap, где мы создаем ключ, объединяя три поля данных. Есть ли лучший способ сделать это или это путь? Код ниже.Метод поиска данных для небольшого набора данных с Java?
Обновление: Я не подразумеваю, что этот код работает медленно. Просто любопытно, есть ли лучший способ сделать это. Я думал, что может быть более элегантное решение, но я счастлив сохранить это на месте, если нет убедительных альтернатив!
Создание уровня класса статический экземпляр 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());
}
}
И как мы смотрим на данные, основанные на трех областях:
private Stirng getData(String f1, String f2, String f3) {
String key = f1 + "-" + f2 + "-" f3;
return map.get(key);
}
Действительно ли это так медленно? –
Это хороший способ, это мой оппонент. –
Эта 'карта' действительно должна быть' final'. Вы рассматривали использование дженериков? –