У меня возникла проблема, которая, похоже, не имеет решения для решения проблем.Обновление записи на карте java
Я использую java.util.Map
, и я хочу обновить значение в паре Key-Value.
Прямо сейчас, я это делаю Лик это:
private Map<String,int> table = new HashMap<String,int>();
public void update(String key, int val) {
if(!table.containsKey(key)) return;
Entry<String,int> entry;
for(entry : table.entrySet()) {
if(entry.getKey().equals(key)) {
entry.setValue(val);
break;
}
}
}
Так есть ли способ, чтобы я мог получить необходимую Entry
объект без перебора всей Map
? Или есть способ обновить значение записи на месте? Некоторый метод в Map
, как setValue(String key, int val)
?
JRH
PS: его table.entrySet(). Я набрал это неправильно. – jrharshath
Вы можете удалить первый оператор «if». Он по-прежнему вызывает полную итерацию по карте, если ключ отсутствует. Если вы удалите его, вы по-прежнему будете перебирать всю карту и ничего не выполнять, если ключ отсутствует. Прямо сейчас, если ключ присутствует, вы перебираете по карте, находите, что она присутствует, а затем снова итерации через записи. –