Basate su List, una sottointerfaccia di Collection e di Iterable
ArrayList
Implementa la lista mediante un array
CapacitĂ iniziale: 10 elementi
LinkedList
Implementa la lista mediante elementi linkati
Iterare sulle liste in entrambe le direzioni
listIterator() restituisce un iteratore bidirezionale (Interfaccia ListIterator che estende Iterator) per la lista
ListIterator <Integer> i = l.listIterator();while (i.hasNext()) System.out.println(i.next());
Da destra verso sinistra (se si specifica un intero, si parte da quella posizione: es. list.listIterator(list.size()))
ListIterator <Integer> i = l.listIterator(l.size());while (i.hashPrevious()) System.out.println(i.previous());
Insiemi HashSet, TreeSet e LinkedHashSet
Basati su Set, una sottointerfaccia di Collection e di Iterable
Gli insiemi sono Collection che contengono elementi tutti distinti
Le classi insiemi, HashSet, TreeSet e LinkedHashSet, estendono AbstractSet e implementano l’interfaccia Set
HashSet memorizza gli elementi in una tabella di hash
TreeSet memorizza gli elementi in un albero mantenendo un ordine sugli elementi
LinkedHashSet memorizza gli elementi in ordine di inserimento
Come funziona un HashSet?
Mappe
Una mappa mette in corrispondenza chiavi e valori
Non può contenere chiavi duplicate
java.util.Map è un’interfaccia implementata da HashMap, TreeMap e LinkedMap
Chiavi e valori di una mappa
E’ possibile ottenere l’insieme delle chiavi di una mappa mediante il metodo keySet
L’elenco dei valori mediante il metodo values
L’insieme delle coppie (chiave, valore) mediante il metodo entrySet
Restituisce un insieme di oggetti di tipo Map.Entry<K, V>
Per ogni oggetto (ovvero la coppia) è possibile conoscere le chiave (getKey()) e ill valore (getValue())
Alcuni metodi Java 8 e Java 9 nell’interfaccia java.util.Map
forEach (BiConsumer)
Itera su ciascuna coppia (chiave valore)
getOrDefault (chiave, valoreDefault)
Restituisce il valore associato alla chiave o valoreDefault se la chiave non è presente
merge (chiave, valore, BiFunction)
Se la chiave non contiene giĂ un valore, imposta il valore specificato, altrimenti chiama una bifunzione che decide come mettere insieme il valore precedente con il valore passato in input
of (chiave, valore, chiave, valore,…, chiave, valore)
statico, crea una mappa immutabile dei tipi e con i valori corrispondenti
Riferimenti a metodi esistenti
E’ possibile passare riferimenti a metodi esistenti