Pregunta

estoy frente a un problema que parece no tener solución straighforward.

Estoy usando java.util.Map, y quiero actualizar el valor en un par clave-valor.

En este momento, lo estoy haciendo lik esto:

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;
        }
    }
}

Entonces, ¿hay algún método para que pueda obtener el Entry objeto deseado sin tener que recorrer todo el Map? ¿O hay alguna manera de actualizar el valor de la entrada en su lugar? Algún método en setValue(String key, int val) como <=>?

JRH

¿Fue útil?

Solución

Uso

table.put(key, val);

para añadir un nuevo par clave / valor o sobrescribir un valor de clave existente.

Desde el Javadocs:

  

V put (clave K, el valor V): Asocia el valor especificado con la clave especificada en este mapa (operación opcional). Si el mapa previamente contenía una asignación para la tecla, el valor antiguo se sustituye por el valor especificado. (Un mapa m se dice que contiene una asignación para una clave k si y sólo si m.containsKey (k) volvería cierto.)

Otros consejos

Si la clave está presente table.put(key, val) simplemente se sustituye el valor de otra cosa que va a crear una nueva entrada. ¡Maricón! y ya está. :)

se puede obtener el valor de un mapa utilizando la clave es table.get(key); Eso es todo

sólo tiene que utilizar el método

public Object put(Object key, Object value)

Si la tecla ya estaba presente en el mapa a continuación, se devuelve el valor anterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top