Domanda

Sono di fronte a un problema che sembra non avere soluzione straighforward.

sto usando java.util.Map, e voglio aggiornare il valore in una coppia di valori-chiave.

In questo momento, lo sto facendo lik questo:

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

Quindi non v'è alcun metodo in modo che io possa ottenere il Entry oggetto desiderato, senza dover scorrere l'intero Map? O c'è qualche modo per aggiornare il valore della voce nel posto? Alcuni metodo setValue(String key, int val) come <=>?

JRH

È stato utile?

Soluzione

Usa

table.put(key, val);

per aggiungere una nuova coppia chiave / valore o sovrascrivere un valore di chiave esistente.

Dal Javadocs:

  

V put (chiave K, V value): Associa il valore specificato con la chiave specificata in questa mappa (operazione facoltativa). Se la mappa in precedenza conteneva una mappatura per la chiave, il vecchio valore viene sostituito dal valore specificato. (Una mappa m si dice contenga una mappatura per una chiave k se e solo se m.containsKey (k) restituirebbe true.)

Altri suggerimenti

Se la chiave è presente table.put(key, val) sarà solo sovrascrivere il valore altrimenti si creerà una nuova voce. Puf! e si è fatto. :)

è possibile ottenere il valore da una mappa utilizzando chiave è table.get(key); Questo è tutto

Basta usare il metodo

public Object put(Object key, Object value)

se la chiave era già presente nella mappa, allora il valore precedente viene restituito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top