Вопрос

Я столкнулся с проблемой, которая, кажется, не имеет однозначного решения.

я использую java.util.Map, и я хочу обновить значение в паре «ключ-значение».

Сейчас я делаю это так:

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)?

джрх

Это было полезно?

Решение

Использовать

table.put(key, val);

чтобы добавить новую пару ключ/значение или перезаписать существующее значение ключа.

Из Javaдокументации:

V put (ключ K, значение V):Связывает указанное значение с указанным ключом в этой карте (необязательная операция).Если карта ранее содержала сопоставление ключа, старое значение заменяется указанным значением.(Говорят, что карта m содержит отображение для ключа k тогда и только тогда, когда m.containsKey(k) возвращает true.)

Другие советы

Если ключ присутствует table.put(key, val) просто перезапишет значение, иначе создаст новую запись.Пуф!и все готово.:)

вы можете получить значение с карты, используя ключ table.get(key); Вот и все

Вы просто используете метод

public Object put(Object key, Object value)

если ключ уже присутствовал на карте, возвращается предыдущее значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top