Class Map : esempio introduttivo ( Java )

Link utili :

Documentazione Sun : Map
Documentazione Sun : HashMap
Documentazione Sun : TreeMap

Breve introduzione :

Una “mappa” è una classe che associa ad un oggetto chiave ( key ) un oggetto valore ( value ) . Le mappe non possono contenere chiavi “duplicate”, cioè che abbiano lo stesso valore key. Questo significa che andando a inserire una chiave già esistente nella mappa, andremo a sovrascriverne il valore.
HashMap e TreeMap sono due implementazioni della classe Map .
Da notare che l’ HashMap , al contrario della TreeMap, permette l’inserimento di valori null .

Funzioni utili :

isEmpty() : restituisce true se la mappa non contiene key e value.
containsKey(key) : restituisce true se la mappa contiene la chiave key passata come argomento.
containsValue(value) : restituisce true se la mappa contiene il valore value passato come argomento.
get(key) : restituisce il valore associato al parametro key.
put(key,value) : inserisce la chiave e il valore nella mappa passati come argomenti.
remove(key) : rimuove la chiave ( e il valore associato ) passata come parametro .

Per le altre funzioni, vedere i link forniti sopra.

Esempio HashMap :

import java.util.*;

public class HashMappe
{
     public static void main(String[] args)
     {
	// creamo una nuova mappa di String
	HashMap map = new HashMap();
        // nota : possiamo usare HashMap per creare un HashMap che accetti tipo1 per la chiave
        // e tipo2 per il valore.
        // Es : Hasmap map = new HashMap();
	// Avremo così un HashMap che avrà la key e la value di tipo String.

	// inserimento di una chiave / valore : map.put(key,value)
	map.put("Prova", "uno");
	map.put("Prova2", "due");
	map.put("Prova3", "tre");

	//essendo un HashMap possiamo inserire un valore nullo
	map.put(null, null);

	// stampiamo i valori inseriti
	System.out.println(map);

        // inseriamo una chiave gia esistente ,
        // vedremo che verrà sovrascritto il vecchio valore.
        map.put("Prova3","cinque");
        System.out.println(map);

        // funzioni mappe utili 

        // controlliamo se la mappa contiene la chiave Prova2
        if ( map.containsKey("Prova2") )
		System.out.println(map.get("Prova2")); // se la contiene la stampiamo

	if ( map.isEmpty() ) // controllaimo se la mappa è vuota
		System.out.println(" vuota"); // se è vuota la stampiamo

	System.out.println(map.size()); // stampiamo il numero di chiavi della mappa
     }
}

Esercizio ( questa volta usiamo la TreeMap ):

/* Scrivere il codice di una classe java che permetta di
 * memorizzare stringhe. La classe dovrà implementare una
 * funzione per memorizzare la generica stringa e una funzione
 * che permetta di verificare l'avvenuto inserimento di una
 * particolare stringa restituendo -1 se la stringa non è mai
 * stata inserita o un numero intero positivo, relativo all'
 * ordine di inserimento, se la stringa è stata effettivamente
 * inserita.
 */

import java.util.*;

public class Esercizio3_160608
{
   public static void main(String[] args)
   {
        // inizializziamo l'oggetto
        esercizio3 esercizio = new esercizio3(); 

	System.out.println(
	"Inserisco:\n" +
	"ciccio\n" +
	"ciccio\n" +
	"ciccio2\n" +
	"ciccio3\n" +
	"ciccio\n");

	// inseriamo i valori
	esercizio.insert("ciccio");
	esercizio.insert("ciccio");
	esercizio.insert("ciccio2");
	esercizio.insert("ciccio3");
	esercizio.insert("ciccio");

	// visualiziamo i valori inseriti
	System.out.println(esercizio.mappa);

	// testiamo la funziona check
	System.out.println(esercizio.check("tyht"));
	System.out.println(esercizio.check("ciccio"));
   }
}

class esercizio3
{
  public TreeMap mappa; // mappa
  public int value; 

  public esercizio3() // costruttore
  {
	mappa = new TreeMap();
	value = 1; // ci servirà per stabilire l'ordine di inserimento
  }

  public void insert(String key)
  {
	// System.out.println(value);
	mappa.put(key,value++);
	// inseriamo la key passata come argomento ed assegnamoci
	// , come valore, l'ordine di inserimento stabilito dalla
	// variabile value. Ad ogni inserimento aumentiamo il valoire
	// di value grazie a value++ . 

  }

  public int check(String stringa)
  {
	if ( this.mappa.containsKey(stringa) ) // se è presente
        {
		return this.mappa.get(stringa); // visualizziamo il valore dell'ordinamento
	}
	else // altrimenti ritorniamo -1 .
		return -1;
  }
}

Ecco qui i sorgenti degli esempi di sopra.
Esempio 1
Esempio 2

Lascia un commento