Mappe

Tipi di dati ed eccezioni in Java

Jim White

Java Developer

Le mappe sono tabelle di lookup

  • Le mappe sono strutture dati per lookup
    • Salvano un "valore" a una "chiave" specifica
    • Usa la "chiave" per recuperare il "valore"
  • Esempio: chiamare un medico
    • Cercano la cartella clinica (l'oggetto valore) dato nome/data di nascita (la chiave)

Le mappe sono strutture di lookup, come quando chiami lo studio medico e chiedono nome e data di nascita per trovare la tua cartella

Tipi di dati ed eccezioni in Java

Interfaccia Map

  • L'interfaccia Map definisce le operazioni su coppie chiave/valore
    • Come salvare o "put" un valore a una chiave specifica
    • Come "remove" il valore alla chiave dalla Map
    • Come recuperare il valore data una chiave
  • Diverse implementazioni di Map con comportamento simile
    • Un'implementazione molto usata è HashMap
1 Vedi https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html per dettagli
Tipi di dati ed eccezioni in Java

Chiavi e valori di HashMap

Le chiavi e i valori di Map o HashMap possono avere lo stesso o diverso tipo

Tipi di dati ed eccezioni in Java

Costruzione di HashMap

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • Il costruttore parametrico/generico di HashMap richiede due tipi

    • Il primo tipo = tipo della chiave

      Il primo parametro generico di HashMap è per le chiavi

    • Il secondo tipo = tipo del valore

      Il secondo parametro generico di HashMap è per i valori

I tipi di chiave e valore nei generics definiscono il tipo di dati per chiavi e valori

  • Richiede l'import di java.util.HashMap
Tipi di dati ed eccezioni in Java

Metodi di HashMap

  • Usa .put(key,value) per aggiungere una coppia chiave/valore
  • Usa .remove(key) per rimuovere la coppia alla chiave indicata
  • Usa .get(key) per ottenere il valore alla chiave
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Tipi di dati ed eccezioni in Java

Collections

  • java.util.Collections è una classe di supporto
  • Usata per ordinare, riempire, copiare, cercare e altro
    • Ha solo metodi static
1 Vedi https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Tipi di dati ed eccezioni in Java

Metodi di Collection

  • Aggiungi molti oggetti a una List
    • addAll(List list, Object a, b, ...)
  • Restituisci il conteggio di un oggetto in una collection
    • frequency(Collection c, Object o)
  • Inverti l'ordine degli oggetti in una List
    • reverse(List list)
  • Ordina gli oggetti in una List
    • sort(List list)
  • Sostituisci tutti gli oggetti in una List con un altro oggetto
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Tipi di dati ed eccezioni in Java

Arrays

  • A volte serve convertire un array (es. int[]) in una List
    • Gli array Java non sono ridimensionabili; potremmo dover aggiungere/rimuovere elementi
    • List offre più funzioni (ricerca, ordinamento, ecc.)
  • java.util.Arrays è un'altra classe di supporto
    • Consente di convertire un array Java in List
Tipi di dati ed eccezioni in Java

Esempio con Arrays

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Tipi di dati ed eccezioni in Java

¡Vamos a practicar!

Tipi di dati ed eccezioni in Java

Preparing Video For Download...