Popolare una HashMap in Java
Il post di oggi si pone l’obbiettivo di presentare un modo semplice ed intuitivo di popolare una HashMap in Java.
Premesso che per “Tabella di Hashing” si intende una struttura dati di tipo associativo in cui c’è un associazione univoca tra chiave e relativo valore. Per poter accedere un certo valore bisogna conoscerne la relativa chiave. Senza entrare troppo nei dettagli teorici, l’uso di tabelle di hashing risulata conveniente in caso di operazione di ricerca, dato che il tempo di ricerca di una qualunque chiave all’interno della tabella è costante ( in termini matematici è un O(1) ).
Java mette a disposizione del programmatore una classe che implementa le funzionalità di una tabella di hashing tramite la classe “HashMap”. Di seguito ho realizzato una classe che illustri l’utilizzo delle “Map” :
import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class HashMapTest {
private HashMap map ;
public HashMapTest() { map = new HashMap(); } public HashMap setMap() { String nome = "Andrea"; String anno = "2009"; map.put("k1", nome); map.put("k2", anno); return map ; }
public void printMapContent(HashMap m) {
Set set= map.keySet() ;
Iterator iter = set.iterator () ;
while ( iter.hasNext () ) {
System.out.println ( map.get ( iter.next () ) ) ;
}
}
public static void main (String args[]){
HashMapTest test = new HashMapTest();
HashMap resMap = test.setMap();
test.printMapContent(resMap);
}
}// :~
Osservando il codice si nota come una volta creato l’oggetto “map” , istanza della classe HashMap , ci siano due metodi che vengono richiamati , “put()” e “get()” rispettavamente per inserire una nuova entry nella tabella e l’ altro per ottenere il valore della entry selezionata a partire dalla chiave inserita.
Il metodo “setMap” realizza il riempimento della struttura dati tramite il metodo put() e ritorna un riferimento alla tabella appena aggiornata. In particolare la chiamata di put() avviene in questo modo: put( “NOME_CHIAVE” , “VALORE ASSOCIATO”), dove entrambi i parametri di ingresso sono di tipo String.
Il riferimento ottenuto da setMap() , viene poi utilizzato dal metodo printMapContent() per stampare a video il contenuto della tabella. In questo metodo viene richiamata la funzione “get” che prende come parametro di ingresso una stringa che rappresenta il nome della chiave della entry ricercata e ritorna il valore associato quindi la chiamata avviene come segue: get( “NOME_CHIAVE”).
Entrambi i metodi realizzati, vengono utilizzati nel metodo main() della classe. Provando ad eseguire il codice, il risultato desiderato sarà:
Andrea
2009
Al prossimo post!


