Strutture dati del Collections Framework

Tipi di dati ed eccezioni in Java

Jim White

Java Instructor

Che cos’è un framework

  • Un framework è un insieme di tipi riutilizzabili che offrono funzionalità generiche
    • Esempi di tipi: classi e interfacce
    • Migliora la qualità dell’applicazione
    • Evita di creare tutto da zero
  • In Java i framework sono forniti in uno o più package
  • Vengono con linee guida e regole d’uso

I framework offrono codice predefinito con funzionalità generiche

1 Foto di Ashkan Forouzani su Unsplash
Tipi di dati ed eccezioni in Java

Tipi Java

Due categorie di tipi in Java:

  • Tipi primitivi
    • byte, short, int, long, float, double, char, boolean
  • Tipi reference
    • Classi
    • Interfacce
    • Enum
    • Array
    • ...
Tipi di dati ed eccezioni in Java

Il Collections Framework

  • Collections Framework: insieme integrato di tipi di strutture dati generiche di Java
    • Un package di tipi per memorizzare e manipolare un gruppo di oggetti
  • Definito nel package java.util
    • Serve l’import per usare i tipi del framework
Tipi di dati ed eccezioni in Java

E gli array?

  • Gli array Java possono contenere un gruppo di oggetti o primitivi
    • Il Collections Framework offre un’alternativa di strutture dati
  • Entrambi hanno pro e contro
Array Collections
Non ridimensionabili Dimensione dinamica (crescono e si riducono)
Memorizzano primitivi o oggetti Memorizzano solo oggetti
Omogenei: elementi dello stesso tipo Eterogenei: tipi diversi possibili
Notazione speciale [] per l’accesso Usano metodi per l’accesso
Sintassi speciale {} per l’inizializzazione Si usa new (nessuna sintassi speciale)
Tipi di dati ed eccezioni in Java

Tipi del Collections Framework

  • Il Collections Framework ha due tipi base: Collection e Map
    • Rappresentati da due interfacce: java.util.Collection e java.util.Map
    • Entrambe hanno diverse classi concrete
  • import java.util.*; per usare qualsiasi tipo del Collections Framework

Il Collections Framework ha due tipi base: Collection e Map

Tipi di dati ed eccezioni in Java

Collection

  • Collection definisce molti modi di raggruppare oggetti
    • Specificati da interfacce aggiuntive
  • Gruppo ordinato di oggetti: List
  • Gruppo non ordinato: Set
  • Primo entrato-primo uscito: Queue
    • Funziona come una fila in banca o al botteghino
  • Metodi .add(Object) e .remove(Object) per modificare qualsiasi Collection

Collection include List, Set e Map

Tipi di dati ed eccezioni in Java

Map

  • Le Map si comportano come un elenco telefonico o un dizionario
    • Oggetti "chiave" -> oggetti "valore"
    • Nell’elenco: nome -> numero di telefono
    • Nel dizionario: parola -> definizione
  • Usa la chiave per modificare una Map
    • .put(Object key, Object value) per aggiungere
    • .remove(Object key) per rimuovere
  • Molti tipi di Map, ad esempio HashMap

La struttura Map funziona come un elenco telefonico o un dizionario

Tipi di dati ed eccezioni in Java

Generics

  • Collection e Map sono "parametriche"
    • I generics in Java specificano i tipi contenuti in Collection o Map
    • Sintassi generica: <Class> con tipo parametrizzato
      • < > è detto operatore a rombo
ArrayList<String> list = new ArrayList<String>();  // Costruzione con generics
Tipi di dati ed eccezioni in Java

Generics e type safety

  • I generics migliorano la sicurezza dei tipi
    • Limitano i tipi ammessi in Collection e Map
ArrayList<String> list = new ArrayList<String>();
list.add("hello");  // Aggiungere una String va bene
list.add(new Integer(5));  // Aggiungere un Integer causa errore di compilazione
Tipi di dati ed eccezioni in Java

Senza generics

ArrayList list2 = new ArrayList();  // Lecito ma non specifico

list2.add("hello");                 // Ora si può aggiungere qualsiasi tipo di oggetto
list2.add(new Integer(5));
Tipi di dati ed eccezioni in Java

Dichiarazione e assegnazione di variabili

  • Dichiarazione e assegnazione possono essere separate
ArrayList<String> list = new ArrayList<String>(); //Dichiarazione e assegnazione su una riga

ArrayList<String> list2;     // Solo dichiarazione...
list2 = new ArrayList<String>();  // ...e assegnazione in una seconda istruzione
Tipi di dati ed eccezioni in Java

Ayo berlatih!

Tipi di dati ed eccezioni in Java

Preparing Video For Download...