У меня есть Hashmap, состоящий из фиксированного количества ключей, которые заполняются в профилактических целях.Теперь в цикле я должен проверить каждый ключ, чтобы заменить значение в случае, если оно должно быть изменено.
К сожалению, это довольно медленно из-за необходимого количества итераций.Я действительно хотел бы сохранить структуру ключ-значение, потому что она используется сверху и в конце моего модуля, но я хотел бы улучшить производительность по крайней мере.
Я также подумал о arrayList длячтобы улучшить время вставки, но в этом случае поиск будет медленнее, и я потеряю функцию ключ-значение.Что если я отсортирую массив по ключу в начале, а затем поищу значения с помощью двоичного поиска?
Есть ли лучшее решение для поиска и записи на карте?
Спасибо,
РЕДАКТИРОВАТЬ: код
for (Entry<String, VariableInfo> entry : VariablesMap.entrySet()){
String varName = entry.getKey();
VariableInfo info = entry.getValue();
Object value = info.convertToValue();
DialogWait dialogWindow = new DialogWait();
SwingWorker<Void, Void> swingWorker = new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
while(newTimeSet != _record.getCurrentTimeMs()) {
_record.stepForward();
if(valuesMap.get(varName)!=value)
valuesMap.put(varName, value);
}
dialogWindow.close();
return null;
}
};
swingWorker.execute();
dialogWindow.makeWait("Loading");
}