giovedì 23 aprile 2015

Lezione 23/04/2015: i tipi generici

Tipi generici. Definire e utilizzare una classe generica. Specificare più tipi generici. Estendere le classi generiche. Esercizio: inverti lista generica. Generici e collezioni: interfacce generiche prototipiche. Definire un metodo generico. Calcolare il massimo di una collezione di elementi di tipo generico. Sicurezza dei generici a tempo di compilazione: confronto con gli array. Jolly come tipi generici. Esempio: metodo generico di somma. Cancellazione del tipo (type erasure). Esempio: cancellazione del tipo nella classe Coppia e nel metodo getMassimo. Esercizio: cancellazione del tipo nella classe Pila.

Lab 22/04/2015: hashCode e equals; presentazione dell'esonero 3

Importanza dell'implementazione di hashCode e equals ed esempi di malfunzionamenti con HashSet; importanza dell'implementazione di Comparable per l'uso di TreeSet o TreeMap. Presentazione del terzo esonero: TagInvaders!

martedì 21 aprile 2015

Lezione 21/04/2015: le collection (2); riferimenti a metodi; interfacce funzionali standard

hashCode e equals per il corretto funzionamento di HashSet; comparabilità per il funzionamento di TreeSet/Map. Riferimenti a metodi: statici, d'istanza con riferimento, d'istanza con classe. Ordinamento di una collection in Java 8 vs. Java 7. Metodi di default e statici dell'interfaccia Comparator. Interfacce funzionali standard: Predicate, Function, Supplier, Consumer. Pila e coda in Java. Come scegliere la collection appropriata al proprio problema.


Prova intermedia: 17/4/2015

La foto parla da sé!


giovedì 9 aprile 2015

Lezione del 09/04/2015: le collection (1)

Le Collection. Gerarchia delle interfacce di tipo Collection: Iterable, Collection, List, Set, SortedSet, Queue. Tre modi per iterare su una collezione. L'interfaccia Iterator. Esempio: il Jukebox. Collezioni fondamentali: ArrayList, LinkedList, HashSet, TreeSet, HashMap, LinkedHashMap, TreeMap. Metodi di ogni collezione. ListIterator e il metodo listIterator. Esempi di uso di HashSet e TreeSet. Funzionamento di un HashSet: il metodo hashCode. HashMap e TreeMap: l'interfaccia Map. L'interfaccia Comparable. Ordinamento con l'interfaccia Comparator. Insiemi e mappe con elementi (o chiavi) senza ordinamento, con ordinamento naturale e con ordinamento di inserimento. I metodi keySet, values e entrySet di Map. Espressioni lambda per specificare il Comparator. Riferimenti a metodi.

mercoledì 8 aprile 2015

Lab 08/04/2015: annullato

Il laboratorio di oggi annullato causa prolungamento inatteso di lavori all'interno.

mercoledì 1 aprile 2015

Lab 01/04/2015: esercizi

Esercizio su interfaccia Resettabile. Esercizio Filtro, FiltroIntero, FiltroPrimo, FiltroDispari, MultiFiltro con gestione delle eccezioni. Rendere iterabile una stringa (con iterator come classe interna). Rendere iterabile un treno (con iterator di vagoni ripreso dall'iterator della lista). Rete sociale e Utenti.


martedì 31 marzo 2015

Lezione 31/03/2015: classi annidate e interne; classi anonime; espressioni lambda

Classi interne: classi top-level, classi annidate e interne. Classi anonime. Espressioni lambda. Esercizio: lista linkata con classi interne (provate a farlo con add in coda ottimizzato).


giovedì 26 marzo 2015

Lezione 26/03/2015: interfacce; esercizio con Iterable e Iterator; for "each"

Interfacce in Java: dichiarazione, implementazione. Esempio: Iterabile. Differenza tra interfacce e classi astratte. Ereditarietà multipla: il problema del diamante. Interfacce notevoli. Esercizio: MyString con Iterator e Iterable. Istruzione for "each"

mercoledì 25 marzo 2015

Lab 25/03/2015: esercizi

ContoBancario e Operazione (in versione Java 7 e Java 8). Espressioni. Debugging con Eclipse.