Utilizziamo cookie tecnici e di profilazione (anche di terze parti) per migliorare la tua esperienza su questo sito. Continuando la navigazione accetti l'utilizzo dei cookie; in alternativa, leggi l'informativa e scopri come disabilitarli.

Indice articoli

Corso di programmazione ad oggetti
- Modulo 4 -
Collezioni

Luigi Ferrari

Data di creazione: 11.3.2014


Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione - Condividi allo stesso modo 3.0 Unported. Per leggere una copia della licenza visita il sito web o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Il testo completo della licenza sul sito di Creative Commons,
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode .

 

 

Corso di OOP by Luigi Ferrari is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0).

 


Tu sei libero:

  • di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera
  • di modificare quest'opera

lle seguenti condizioni:

  • Attribuzione: Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi ti ha dato l'opera in licenza e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera.
  • Condividi allo stesso modo: Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.
  • Non commerciale: Non puoi usare quest'opera per fini commerciali.

Prendendo atto che:

  • Rinuncia: E' possibile rinunciare a qualunque delle condizioni sopra descritte se ottieni l'autorizzazione dal detentore dei diritti.
  • Pubblico Dominio: Nel caso in cui l'opera o qualunque delle sue componenti siano nel pubblico dominio secondo la legge vigente, tale condizione non è in alcun modo modificata dalla licenza.


Altri Diritti
La licenza non ha effetto in nessun modo sui seguenti diritti:

  • Le eccezioni, libere utilizzazioni e le altre utilizzazioni consentite dalla legge sul diritto d'autore;
  • I diritti morali dell'autore;
  • Diritti che altre persone possono avere sia sull'opera stessa che su come l'opera viene utilizzata, come il diritto all'immagine o alla tutela dei dati personali.


Nota
Ogni volta che usi o distribuisci quest'opera, devi farlo secondo i termini di questa licenza, che va comunicata con chiarezza.


4. Modulo 4 - Strutture dati e collezioni in Java


Durata: 5-6 settimane.

Prerequisiti
Moduli precedenti. In particolare:

  • Conoscere ed utilizzare gli array.
  • Conoscere come sono gestiti gli oggetti in memoria.
  • Saper combinare classi attraverso il meccanismo di composizione.


Obiettivi del modulo

  • Saper individuare una collezione di oggetti in una classe.
  • Scegliere tra diverse alternative quale tipo di collezione e' piu' confacente al problema.
  • Conoscere ed utilizzare i pattern Iterator e Composite.
  • Saper realizzare delle collezioni di oggetti non standard.
  • Utilizzare il meccanismo delle eccezioni.
  • Saper testare un programma attraverso dei casi fissi di test.
  • Polimorfismo: diverse tipologie.
  • Saper gestire le eccezioni: intercettarle o propagarle.
  • AVANZATO: saper definire nuove tipologie di eccezioni.


Argomenti
Pile, code, liste, alberi binari, tabelle hash. Insiemi, mappe.
Pattern iterator.
Le eccezioni per la gestione degli errori. Tipi di eccezioni, propagazione delle eccezioni, gestione delle eccezioni.
Concetto di programmazione generica (generics): motivazioni e vantaggi.

Riferimenti

  • [LOR06] cap 5.3 (stack), 5.4 (code), approfondimento nel 5.4 (liste), 5.5 (alberi). Mancano le eccezioni, il pattern Iterator e le hash table.
  • Horstmann AlgoritmieStruttureDati-cap04-PileECode.pdf, 28 pagg.
  • [TAR01] Eccezioni nel cap. 7.
  • Per i generics: http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf .
  • Sempre per i generics: http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html.
  • Sito del libro "Introduction to Programming in Java: An Interdisciplinary Approach" di Robert Sedgewick and Kevin Wayne, molto curato e con ottimi spunti http://introcs.cs.princeton.edu/java/40algorithms/ .