Corso di Progettazione del Software
|
|
- Teresa Vinci
- 7 anni fa
- Visualizzazioni
Transcript
1 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 1/28 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza S.JOO.6 Java Collections Framework versione del February 2, 2008
2 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 2/28 odifiche rispetto alle versioni precedenti Aggiunte alcune slides in coda riguardo le classi generics supportate da Java 1.5 e la versione del JCF realizzata mediante generics. Rispetto alla versione del 9 Febbraio 2007
3 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 3/28 Introduzione al JCF Il Java Collections Framework è una libreria formata da un insieme di interfacce e di classi che le implementano per lavorare con gruppi di oggetti (collezioni). Le interfacce e le classi del Collections Framework si trovano nel package java.util Il Collections Framework comprende: Interfacce: rappresentano vari tipi di collezioni di uso comune. Implementazioni: sono classi concrete che implementano le interfacce di cui sopra, utilizzando strutture dati efficienti (vedi corso di Algoritmi e Strutture Dati). Algoritmi: funzioni che realizzano algoritmi di uso comune, quali algoritmi di ricerca e di ordinamento su oggetti che implementano le interfacce del Collections Framework.
4 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 4/28 Introduzione al JCF (2) Perchè usare il Collections Framework? Generalità: permette di modificare l implementazione di una collezione senza modificare i clienti. Interoperabilità: permette di utilizzare (e farsi utilizzare da) codice realizzato indipendentemente dal nostro. Efficienza: le classi che realizzano le collezioni sono ottimizzate per avere prestazioni particolarmente buone (vedi corso di Algoritmi e Strutture Dati).
5 Interfacce del Collections Framework T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 5/28
6 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 6/28 Interfaccia Collection public interface Collection { // Basic Operations int size(); boolean isempty(); boolean contains(object element); boolean add(object element); // Optional boolean remove(object element); // Optional Iterator iterator(); // Bulk Operations boolean containsall(collection c); boolean addall(collection c); // Optional boolean removeall(collection c); // Optional boolean retainall(collection c); // Optional void clear(); // Optional L interfaccia specifica Operazioni di base quali inserimento, cancellazione, ricerca di un elemento nella collezione Operazioni che lavorano su intere collezioni quali l inserimento, la cancellazione la ricerca di collezioni di elementi Operazioni per trasformare il contenuto della collezione in un array. Operazioni opzionali che lanciano UnsupportedOperationException se non supportati da una data implementazione dell interfaccia. // Array Operations Object[] toarray(); Object[] toarray(object[] a);
7 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 7/28 Interfaccia Set public interface Set extends Collection { /* // Basic Operations int size(); boolean isempty(); boolean contains(object element); boolean add(object element); // Optional boolean remove(object element); // Optional Iterator iterator(); // Bulk Operations boolean containsall(collection c); boolean addall(collection c); // Optional boolean removeall(collection c); // Optional boolean retainall(collection c); // Optional void clear(); // Optional Set estende Collection Set non contiene altre dichiarazioni di operazioni che non siano già presenti in Collection Set serve a rappresentare il tipo insieme Set non permette di avere elementi duplicati (a differenza di Collection) le operazioni bulk corrispondono a: s1.containsall(s2) S 1 S 2 s1.addall(s2) S 1 S 2 s1.retainall(s2) S 1 S 2 */ // Array Operations Object[] toarray(); Object[] toarray(object[] a);
8 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 8/28 Interfaccia List public interface List extends Collection { /* // From Collection: Basic Operations int size(); boolean isempty(); boolean contains(object element); boolean add(object element); // Optional boolean remove(object element); // Optional Iterator iterator(); List estende Collection List contiene ulteriori dichiarazioni di operazioni rispetto a Collection (v. slide seguente) List serve a rappresentare il tipo lista List permette di avere elementi equal tra loro (a differenza di Set) // From Collection: Bulk Operations boolean containsall(collection c); boolean addall(collection c); // Optional boolean removeall(collection c); // Optional boolean retainall(collection c); // Optional void clear(); // Optional */ // From Collection: Array Operations Object[] toarray(); Object[] toarray(object[] a);
9 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 9/28 Interfaccia List (2) //...public interface List extends Collection { indexof(object o) e lastindexof(object o) Object get(int index); ritornano l indice della prima e ultima occorrenza di o, Object set(int index, Object element); // Optional int indexof(object o); rispettivamente. Se o non occorre nella lista, int lastindexof(object o); ritornano -1. get(int i) e set(int i) ritornano e aggiornano void add(int index, Object element); // Optional l elemento i-esimo della lista (di lunghezza maggiore boolean addall(int index, Collection c); // Optional di i); Object remove(int index); // Optional add(int i, Object o) aggiunge o in posizione // Other operations (omitted) i, facendo scorrere a destra di una posizione tutti gli elementi di indice i. remove(int i) rimuove l elemento in posizione i, facendo scorrere a sinistra di una posizione tutti gli elementi di indice i. Ritorna l elemento rimosso.
10 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 10/28 Iterator Un iteratore è un oggetto che rappresenta un cursore con il quale scandire una collezione alla quale è associato. un iteratore è sempre associato ad un oggetto collezione. per funzionare, un oggetto iteratore deve essere a conoscenza degli aspetti più nascosti di una classe, quindi la sua realizzazione dipende interamente dalla classe collezione concreta che implementa la collezione. public Iterator iterator() in Collection restituisce un iteratore con il quale scandire la collezione oggetto di invocazione. Iterator è una interfaccia (non una classe). Questa è sufficiente per utilizzare tutte le funzionalità dell interatore senza doverne conoscere alcun dettaglio implementativo.
11 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 11/28 Iterator (cont.) public interface Iterator { boolean hasnext(); Object next(); void remove(); // Optional Un iteratore ha le seguenti funzionalità: next() che restituisce l elemento corrente della collezione, e contemporaneamente sposta il cursore all elemento successivo; hasnext() che verifica se il cursore ha ancora un successore o se si è raggiunto la fine della collezione; remove() che elimina l elemento restituito dall ultima invocazione di next(); remove() è opzionale perchè in certe collezioni non si vuole mettere a disposizione del cliente funzioni che modifichino la collezione durante la scansione dei suoi elementi (come apputo fà remove()
12 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 12/28 Uso di un Iterator Un iteratore va usato per scandire la collezione come segue: Collection c =... //collezione dove memorizziamo oggetti istanze di E... Iterator it = c.iterator(); while (it.hasnext()) { //finche il cursore non e all ultimo elemento E e = (E)it.next(); // poni l elemento corrente in e ed avanza... // processa l elemento corrente (denotato da e) Si noti che l iteratore non ha alcuna funzione che lo resetti : una volta iniziata la scansione, non si può fare tornare indietro l iteratore; una volta finita la scansione, l iteratore non è più utilizzabile; l interfaccia List contiene la dichiarazione dell operazione listiterator() che ritorna un ListIterator, che può essere spostato avanti o indietro.
13 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 13/28 Una realizzazione dell interf. Set Struttura base di una classe public class XXX { // campi dati (rappresentazione degli oggetti XXX) // costruttori // funzioni proprie della classe // funzioni speciali ereditate da Object // funzioni non pubbliche ausiliarie
14 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 14/28 Una realizzazione dell interf. Set (2) Implementazione dell interfaccia Set import java.util.*; public class InsiemeArray implements Set { // campi dati // costruttori // funzioni proprie della classe // (realizzazione delle funzioni di Set) // basic operations public int size() {... public boolean isempty() {... public boolean contains(object e) {... public boolean add(object e) {... public boolean remove(object e) {... public Iterator iterator() {......
15 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 15/28 Una realizzazione dell interf. Set (3) //... public class InsiemeArray implements Set { // bulk Operations public boolean containsall(collection c) {... public boolean addall(collection c){ // opzionale - non supportata throw new UnsupportedOperationException("addlAll() non e supportata"); public boolean removeall(collection c) { // opzionale - non supportata throw new UnsupportedOperationException("removeAll() non e supportata"); public boolean retainall(collection c) { // opzionale - non supportata throw new UnsupportedOperationException("retainAll() non e supportata"); public void clear() { // opzionale - non supportata throw new UnsupportedOperationException("clear() non e supportata"); // array operations public Object[] toarray() {... public Object[] toarray(object[] a) {... // funzioni speciali ereditate da Object // funzioni ausiliarie
16 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 16/28 Una realizzazione dell interf. Set (4) Rappresentazione degli oggetti InsiemeArray basata su array dinamici. public class InsiemeArray implements Set { // campi dati protected Object[] array; protected static final int diminit = 10; //dim. iniz. array protected int cardinalita; // costruttori // funzioni proprie della classe // (realizzazione delle funzioni di Set)...
17 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 17/28 Una realizzazione dell interf. Set (5) Costruttori per InsiemeArray public class InsiemeArray implements Set { // campi dati protected Object[] array; protected static final int diminit = 10; //dim. iniz. array protected int cardinalita; // costruttori public InsiemeArray() { array = new Object[dimInit]; cardinalita = 0;...
18 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 18/28 Una realizzazione dell interf. Set (6) Funzioni speciali ereditate da Object public class InsiemeArray implements Set, Cloneable { // campi dati... // costruttori... // funzioni proprie della classe // (realizzazione delle funzioni di Set)... // funzioni speciali ereditate da Object public boolean equals(object o) { // verifica uguaglianza profonda public int hashcode() { /* ritorna hash-code */ public Object clone() { /* copia profonda */ public String tostring() {... Realizzazione dei singoli metodi (vedi codice allegato): equals(), hashcode(), clone(), tostring() size(), isempty(), contains() add(), remove()
19 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 19/28 Una realizzazione dell interf. Set (7) Realizzazione della funzione: iterator() public class InsiemeArray implements Set, Cloneable { // campi dati... // funzioni proprie della classe // (realizzazione delle funzioni di Set) // basic operations... public Iterator iterator() { return new IteratorInsiemeArray(this); //nota!...
20 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 20/28 Interfaccia Iterator L interfaccia Iterator public interface Iterator { boolean hasnext(); Object next(); void remove(); // Optional <-- noi non lo realizziamo Esempio di uso dell interfaccia Iterator public class ClenteDiSet {... public static void StampaElementi(Set s) { Iterator it = s.iterator(); while(it.hasnext()) { Object o = it.next(); System.out.println(o);...
21 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 21/28 Realizzazione dell interf. Iterator (1) Realizziamo literatore per InsiemeArray // Quanto segue deve stare nello stesso package di InsiemeArray package insiemearray; import java.util.*; class IteratorInsiemeArray implements Iterator { // nota non e pubblica, cioe ne impediamo l uso diretto da parte // dei clienti (che quindi possono usare solo l interfaccia Iterator) private InsiemeArray insiemearray; private int indice; public IteratorInsiemeArray(InsiemeArray ia) { insiemearray = ia; indice = 0; // Realizzazione funzioni di Iterator public boolean hasnext() { return indice < insiemearray.cardinalita; // accessibile perche nello stesso package!!! public Object next() { Object e = insiemearray.array[indice]; // accessibile perche nello stesso package!!! indice++; return e; public void remove() { // non non la supportiamo throw new UnsupportedOperationException("remove() non e supportata");
22 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 22/28 Collezioni omogenee L implementazione InsiemeArray di Set, cosi come tutte le implementazioni predefinite del Collections Framwork, realizzano collezioni disomogenee, cioè i cui elementi possono essere di tipi diversi (es. in prima posizione possiamo avere una String, in seconda un Integer, ecc.). Come possiamo realizzare collezioni omogenee, cioe i cui elementi siano tutti dello stesso tipo? Imporre che una collezione sia omogenea in modo statico (cioe a tempo di compilazione) non si puo in Java. Ma si puo imporlo in modo dinamico (cioe a tempo di esecuzione): dobbiamo memorizzare nella classe il tipo degli elementi, dobbiamo verificare durante l inserimento che gli oggetti che inseriamo siano del tipo giusto. Nota. In realtà, dalla versione 1.5, Java supporta il concetto di template (classi generics), che può essere usato a questo scopo (cf. seguito).
23 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 23/28 Insieme di elementi omogenei Costruiamo una classe InsiemeArrayOmogeneo che implementa Set, ma realizza insiemi omogenei. Riusiamo l implementazione InsiemeArray, realizzando InsimeArrayOmogeneo come una sua classe derivata, dove faremo overriding dei metodi che vanno modificati public class InsiemeArrayOmogeneo extends InsiemeArray { // campi dati protected Class elemclass; // costruttori public InsiemeArrayOmogeneo(Class cl) { super(); elemclass = cl; public InsiemeArrayOmogeneo() { this(object.class); // overriding delle basic operations public boolean add(object e) { if (!elemclass.isinstance(e)) return false; else return super.add(e); // overriding delle bulk oper.: non serve // overriding delle array oper.: non serve... // overr. delle funz. spec. ered. da Object public boolean equals(object o) { if (super.equals(o)) { InsiemeArrayOmogeneo ins = (InsiemeArrayOmogeneo)o; if (elemclass.equals(ins.elemclass)) return true; else return false; else return false; public Object clone() { return super.clone(); // Il campo elemclass viene copiato // superficialmente // overriding di tostring() non serve...
24 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 24/28 Classi collezione generics Dalla versione 1.5, Java supporta la possibilità di definire classi ed interfacce parametriche rispetto ad un tipo, i cosiddetti generics (o template). Tutte le classi ed interfacce del Java Collection Framework, dalla versione Java 1.5, sono state trasformate in classi generics, al fine di fornire un supporto nativo per le collezioni omogenee. In particolare: Le interfacce Collection e sue derivate sono diventate: Collection<E>, Set<E>, List<E>, etc., dove E è il nome di una classe, scelta dall utente, che limita la tipologia degli oggetti che possono essere inseriti nella collezione e il tipo degli oggetti che vengono ritornati. Le interfacce Iterator, ListIterator etc. sono diventate Iterator<E> etc. Le classi che implementano le interfacce, realizzando i tipi Insieme, Lista, etc., sono diventate tutte generics (cf. seguito).
25 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 25/28 Classi collezione generics (cont.) Usando le versioni generics delle interfacce e classi del JCF, non abbiamo più bisogno di classi realizzate ad-hoc per realizzare collezioni omogenee (come InsiemeArrayOmogeneo). Esempio di utilizzo delle versioni generics delle classi e interfacce del JCF. Set<String> setdistringhe = new HashSet<String>();... String s = new String("ciao"); setdistringhe.add(s); Punto p = new Punto(...); setdistringhe.add(p); // Errore!... Iterator<String> it = setdistringhe.iterator(); while(it.hasnext()) { String elem = it.next(); // Si noti la mancanza di cast: il tipo di ritorno di // Iterator<E>.next() e E e non piu Object! (cf. Java API docum.) System.out.println(elem);
26 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 26/28 antaggi nell utilizzo dei generics nel JCF Supporto nativo per le collezioni omogenee, con conseguente semplificazione nello sviluppo del codice e maggiore facilità di test. Ad esempio, l errore nell istruzione (nella slide precedente): setdistringhe.add(p); // Errore! viene rilevato dal compilatore (setdistringhe è stato dichiarato essere di tipo Set<String>) e non più a tempo di esecuzione, cosa che avverrebbe se avessimo usato InsiemeArrayOmogeneo, ad esempio così: Set setdistringhe = new InsiemeArrayOmogeneo(String.class); Punto p = new Punto(...); setdistringhe.add(p); /* Il compilatore non darebbe errori! Tuttavia, a run-time, il metodo InsiemeArrayOmogeneo.add() si rifiuterebbe di aggiungere l oggetto p, che non e istanza della classe String (cf. implementazione del metodo) */ Nota. È ancora possibile usare il JCF alla vecchia maniera : scrivere Collection, Set, HashSet, etc. equivale a scrivere Collection<Object>, Set<Object>, etc.
27 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 27/28 Vant. nell ut. dei generics nel JCF (cont.) Accesso a un ventaglio molto più ampio di classi esistenti nel JCF che implementano in modi alternativi i diversi tipi di collezioni (omogenee). Alcune di queste sono: Interfaccia Set<E> HashSet<E>: implementa molto efficientemente (in tempo O(1)) le operazioni add(), remove(), contains(), size(), al costo di una minore efficienza nell iterazione; TreeSet<E>: implementa abbastanza efficientemente (in tempo O(log(n))) le operazioni add(), remove(), contains(); Interfaccia List<E> ArrayList<E>: implementa molto efficientemente (in tempo medio O(1)) le operazioni size(), isempty(), get(), set(), iterator(), listiterator() al costo di una minore efficienza (in tempo circa O(n)) delle altre operazioni; LinkedList<E>: implementa liste mediante liste doppiamente collegate: simile a InsiemeLista, con l aggiunta che ogni elemento ha un riferimento sia all elemento successivo che a quello precedente, e la ricerca degli elementi può quindi essere effettuata sia a partire dall inizio che dalla fine (a ritroso), in base alla maggiore vicinanza dell indice richiesto all inizio o alla fine della lista. Si consulti la Java API docum. per i dettagli su queste e le altre classi che implementano le interfacce collezione del JCF.
28 T. Mancini & M. Scannapieco S.JOO.6 Java Collections Framework February 2, 2008 p. 28/28 Esercizi 1. Scrivere una funzione che, preso in input un insieme di oggetti che implementano l interfaccia Confrontabile (definita in precedenza), ritorni uno tra i suoi elementi massimali; 2. Scrivere una funzione che, preso in input un insieme di oggetti che implementano l interfaccia Confrontabile, ritorni l insieme dei suoi elementi massimali; 3. Scrivere una funzione che, presa in input una lista di oggetti L, ritorni una nuova lista, contenente gli oggetti in L di indice dispari, nello stesso ordine; 4. Scrivere una funzione che, presa in input una lista di oggetti L, ritorni una nuova lista, contenente gli oggetti in L in ordine inverso. 5. Realizzare le classi ListaArray e ListaArrayOmogenea che, implementando l interfaccia List, realizzino i tipi Lista e ListaOmogenea mediante un array (come avviene per InsiemeArray e InsiemeArrayOmogeneo). Realizzare inoltre la relativa classe IteratorListaArray; 6. Realizzare le classi ListaCollegata e ListaCollegataOmogenea che, implementando l interfaccia List, realizzino i tipi Lista e Lista Omogenea mediante una lista collegata (come avviene per InsiemeLista e InsiemeListaOmogeneo). Realizzare inoltre la relativa classe IteratorListaCollegata. Nota: si rifletta attentamente su quale possa essere una ragionevole implementazione di List.hashCode().
Introduzione al Java Collections Framework. Progettazione del Software Anno Accademico Interfacce del Collections Framework
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Giuseppe De Giacomo & Prof. Monica Scannapieco
DettagliProgettazione del Software Anno Accademico
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Giuseppe De Giacomo & Prof. Monica Scannapieco
DettagliIntroduzione al Java Collections Framework. Java Collections Framework (cont.) Interfacce del Collections Framework
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Introduzione al Java Collections
DettagliIntroduzione al Java Collections Framework
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Insegnamento di PROGETTAZIONE
DettagliProgettazione del Software
Progettazione del Software Programmazione in Java (6) The Collections Framework Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di
DettagliDiagramma delle classi UML. Diagramma e specifica degli use case. Specifica delel classi del diagramma
Università di Roma La Sapienza, Facoltà di Ingegneria Diagramma delle classi UML Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME
DettagliDiagramma delle classi UML
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME DEL 11/07/2003 Roma, 9
DettagliIl Java Collections Framework
Il Java Collections Framework Il Java Collections Framework è una libreria formata da un insieme di interfacce e di classi che le implementano per lavorare con gruppi di oggetti (collezioni). Le interfacce
DettagliDiagramma delle classi UML
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo, A.A. 2001-02 SOLUZIONE ESAME DEL 25/06/2002 Roma, 23 giugno 2003 1
DettagliIntroduzione al Java Collections Framework. Laboratorio di Programmazione Anno Accademico Interfacce del Collections Framework
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Laboratorio di Programmazione Anno Accademico 2004-2005 Corso di Laurea in Ingegneria Informatica Prof. Giuseppe De Giacomo (A L) & Prof.
Dettagli//UML-class-diagram.txt. entrambe Molo e PostoBarca hanno responsabilità su contiene. solo PostoBarca ha responsabilità su assegnato, e
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo, A.A. 2001-02 SOLUZIONE ESAME DEL 25/06/2002 //UML-class-diagram.txt
DettagliConoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione
1 Conoscere l uso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali classi di Collection usare in casi specifici Conoscere
DettagliGenerics & Collections
Generics & Collections Ingegneria del software Jody Marca jody.marca@polimi.it I Generics 2 I Generics rendono possibile definire tipi parametrici tramite classi ed interfacce che gestiscono tipi generici
DettagliCollezioni, mappe e iteratori (a cura del Prof. Marco Patella)
, mappe e iteratori (a cura del Prof. Marco Patella) 1 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere
DettagliCorso di Progettazione del Software
T. Mancini & M. Scannapieco S.JOO.3 Java: le classi Object e Class February 2, 2008 p. 1/12 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso
Dettaglisemplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente
Liste doppie Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica semplice: doppia: Gli
Dettagli# $ $ A.A. 2006/07 Tutor: Daniele Tiles &== ? &7$ %% & '( ) * + $, $ $ -' %./, $ * $ $ 7 5 &7 2$ $ $ 3&4&&&
! A.A. 2006/07 Tutor: Daniele Tiles daniele.tiles@studio.unibo.it # $ $ %% & '( ) * + $, $ $ -' %./, 01 5 6 $ * $ $ 7 5 &7 2$ $ $ 3&4&&& 5 +8$ 9%: 5 6;< &&$ $ &== 1&:+$!*? &7$ $ @$ 1&&# &A1+ $ $ $, $,
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Collezioni di oggetti (in Java) Michele Tomaiuolo Framework Framework
Dettaglisemplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente
1 of 23 22/11/2004 10.23 Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica Lista semplice:
DettagliMetodi di una Collection
Java Collections Introduzione Una java collection (a volte chiamata anche container) è un oggetto che raggruppa più elementi dello stesso tipo in una singola unità. Tipicamente è utilizzata per raggruppare
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza, Facoltà di Ingegneria
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Ing. Informatica) Proff. Marco Cadoli e Maurizio Lenzerini, Canali A-L & M-Z A.A. 2003-04 Compito d esame del
DettagliCollezioni. (a cura del Prof. Marco Patella)
(a cura del Prof. Marco Patella) 1 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere e proprie) mappe implementate
DettagliCorso di Progettazione del Software
T. Mancini & M. Scannapieco S.JOO.5 Java: copia profonda February 2, 2008 p. 1/22 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione
Dettagli22 - Strutture Dati (Java Collections Framework)
22 - Strutture Dati (Java Collections Framework) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Dettaglise invoco un metodo di Object che è ridefinito in Point, viene invocato il metodo definito in Point
Gli HashSet Tipo predefinito che rappresenta insiemi di Object Cosa succede se... Posso mettere un riferimento a un Point in una variabile Object Object o=new Point(12,3); è quasi tutto come se l oggetto
DettagliUguaglianza e copia di oggetti
Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito
DettagliLaboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014
Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale Anno Accademico 2013/2014 Collection Framework Collection: oggetto che raggruppa più elementi in una singola unità. per memorizzare,
DettagliListe doppie. Doubly Linked Lists. GT: 6.2 (e 3.3) Argomenti della lezione
Liste doppie GT: 6.2 (e 3.3) Doubly Linked Lists 1 Argomenti della lezione ADT Position NodeList interface Position PositionList class DNode NodePositionList inserzione rimozione Iteratore ADT Iterator
DettagliIntroduzione Generics Iteratori. Collezioni in Java. Dr. Giulio Pellitta. 13 aprile 2011
13 aprile 2011 Cos è una collezione? Gerarchia delle collezioni Introduzione Una collezione è semplicemente un oggetto che raggruppa più oggetti (detti elementi della collezione) in una singola unità.
DettagliBank. Bank. BankAccount. Bank. Bank. private BankAccount[] conti; // Posizione attuale private int posizioneattuale;...
Bank BankAccount Bank Bank Bank BankAccount private BankAccount[] conti; // Posizione attuale private int posizioneattuale;... Bank Bank public Bank(String nome, String internationalcode, int dimensione)
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Interfaccia Comparable e Collezioni Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 22 Interfaccia
DettagliNotazione grafica UML
Notazione grafica UML Estensione e implementazione in UML: estende implementa Per classi astratte e interfacce i nomi vanno in corsivo preceduti da e UtenteComputer
DettagliProgrammazione in Java Parte II
Programmazione in Java Parte II Lezione 7 Dott. Marco Faella Il Java Collection Framework Java Collection Framework (JCF) è una parte della libreria standard dedicata alle collezioni, intese come classi
DettagliSul pattern Iterator
Sul pattern Iterator 1 Introduzione Capita spesso di aver a che fare con strutture dati complesse, come ad esempio, liste, code, ecc. È buona norma accedere a queste strutture senza esporre la loro organizzazione.
DettagliRequisiti. Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito d esame
DettagliSTRUTTURE DINAMICHE. (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè
STRUTTURE DINAMICHE (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè DIFFERENZE RISPETTO AD ARRAY Finora le collezioni di dati sono state dichiarate come array (di stringhe,
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliLINKEDLIST: implementazione iteratore. LINKEDLIST: iteratore INNERITERATOR INNERITERATOR
LINKEDLIST: iteratore Il metodo iterator() restituisce un oggetto iteratore sulla lista per scandire gli elementi in sequenza a partire dall inizio della lista. public Iterator iterator() { return new
DettagliFondamenti di Informatica T1 Interfaccia Comparable Collezioni
Fondamenti di Informatica T1 Interfaccia Comparable Collezioni Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 19 Interfaccia Comparable Fa
DettagliProgettazione del Software
Progettazione del Software Simulazione di esame II Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Requisiti L applicazione
DettagliLe Collezioni (Java Collections)
Le Collezioni (Java Collections) G. Grossi 20 dicembre 2006 Indice 1 Le Collezioni (Java Collections) Esempi di Liste : for-each e Iteratori Indice Le Collezioni (Java Collections) 1 Le Collezioni (Java
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
Dettagli14. Java Collection Framework Le collezioni: insiemi e liste
14. Java Collection Framework Le collezioni: insiemi e liste Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II Il
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.)
SAPIENZA Università di Roma Facoltà di Ingegneria Sede di Latina Corso di Laurea in Ingegneria Informatica e dell Informazione Requisiti Corso di PROGETTAZIONE DEL SOFTWARE Prof. Domenico Lembo A.A. 2008-09
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito
DettagliParte I Java. Metodologie di Programmaziona Secondo Appello, 14/2/2006 1
Metodologie di Programmaziona 05 06 Secondo Appello, 14/2/2006 1 Parte I Java Considerate le seguenti definizioni di classe. class T { class S extends T { class A { public void print(string s) { System.out.println(s);
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Collezioni Parte b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliPROGRAMMAZIONE Collezioni in Java: il Java Collections Framework (JCF)
PROGRAMMAZIONE 2 14. Collezioni in Java: il Java Collections Framework (JCF) 1 Perché le collezioni Spesso in un programma dobbiamo rappresentare e manipolare gruppi di valori oppure oggetti di uno stesso
DettagliTesto di Riferimento (usato nei corsi precedenti)
Parti II e III 1 Framework Collections in Java: API Java http://java.sun.com/ Generics in Java Tutorial Sun (in inglese) http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf Testo di Riferimento (usato
DettagliINFORMATICA III Parte B -Progettazione e Algoritmi
INFORMATICA III Parte B -Progettazione e Algoritmi Implementazione di codice algoritmico in Java Patrizia Scandurra patrizia.scandurra@unibg.it Università degli Studi di Bergamo a.a. 2010-11 Stessa interfaccia,
DettagliProgettazione del Software
Progettazione del Software La fase di realizzazione (parte I) Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico
DettagliCollezioni in Java. Emilio Di Giacomo e Walter Didimo
Collezioni in Java Emilio Di Giacomo e Walter Didimo Strutture dati Una struttura dati è un contenitore in cui i dati sono organizzati in maniera che possano essere recuperati e manipolati efficientemente
DettagliAlgoritmi e strutture dati
Algoritmi e strutture dati Argomenti Strutture dati elementari e loro implementazioni in Java: Vettori Liste Stack (Pile) Queue (Code) Esempi di applicazione Tipo di dato astratto Tipo di dato astratto
DettagliFondamenti di Informatica I
Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:
DettagliCorso di Progettazione del Software
T. Mancini & M. Scannapieco S.R.3 La fase di Realizzazione: realizzazione di associazioni a resp. singola February 26, 2008 p. 1/35 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Incapsulamento versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliSTRUTTURE DATI: OLTRE GLI ARRAY LISTE
STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi
DettagliArgomenti della lezione. Tipo di dato astratto. Array. Tipo di dato Lista. Liste Implementazione di liste in Java Stack Code
Argomenti della lezione! Tipi di dato astratti! Strutture dati elementari Liste Implementazione di liste in Java Stack Code! Esempi di applicazione Tipo di dato astratto! Tipo di dato astratto o ADT (Abstract
DettagliCorso di Progettazione del Software
T. Mancini & M. Scannapieco S.JOO.4 Java: uguaglianza superficiale e profonda February 2, 2008 p. 1/31 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale
DettagliCorso di Progettazione del Software
T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 1/22 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in
DettagliSi usano quando serve accesso rapido sia in lettura che in scrittura su un insieme non ordinato
Le tavole hash È il modo con cui sono realizzati gli HashSet Si usano quando serve accesso rapido sia in lettura che in scrittura su un insieme non ordinato Principio base Gli array hanno le caratteristiche
Dettagli10 Java Collections Framework
10 Java Collections Framework Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 2015/2016 Mirko Viroli (Università di Bologna)
DettagliFondamenti di Informatica L-B Esercitazione n 6 Java: Collezioni, Classi Wrapper, & Generics. Il package java.util. Strutture dati avanzate in Java
Fondamenti di Informatica L-B Esercitazione n 6 Java: Collezioni, Classi Wrapper, & Generics A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Il package java.util Avete giá avuto
DettagliLaboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Tipi Tipo Astratto di Permette di specicare dati in modo astratto Astratto Indipendentemente
DettagliEsercizio: Lista Circolare
Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 09 ADT: Lista, Pila, Coda A. Miola Marzo 2007 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti Tipo
DettagliJAVA GENERICS. Angelo Di Iorio Università di Bologna
JAVA GENERICS Angelo Di Iorio Università di Bologna Tipi parametrici In diversi casi è utile definire classi che operano su tipi di dato diverso e implementano un comportamento comune e indipendente dal
DettagliFondamenti di Informatica T-1. Collezioni
Collezioni 2 Collezioni Java Collection Framework (JCF): supporto a qualunque struttura dati per contenere "elementi generici". Collection: nessuna ipotesi sul tipo di collezione Set: introduce l idea
DettagliFondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati
Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso
DettagliCollections. ASD-L - Luca Tesei
Collections Dagli array alle List Interfaccia List Interfaccia Comparable Interfaccia Comparator Algoritmi polimorfi sulle liste Collections e implementazioni Set, SortedSet 1 Bank Supponiamo di voler
DettagliArrayList. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni
ArrayList Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni ArrayList Sotto diversi aspetti un ArrayList può essere considerato come un array migliore. I Miglioramenti sono
DettagliProgettazione del Software
Progettazione del Software simulazione di esame III Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Requisiti L'applicazione da progettare riguarda la
DettagliCorso di Progettazione del Software
T. Mancini & M. Scannapieco E.P.1 Segreteria Studenti (SOLUZIONE) February 25, 2008 p. 1/20 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso
DettagliEreditarietà (ultima)
Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...
DettagliEreditarietà (ultima)
Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza Facoltà di Ingegneria
Università di Roma La Sapienza Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Proff. Marco Cadoli e Giuseppe De Giacomo Canali A-L & M-Z A.A. 2005-06
DettagliPROGRAMMAZIONE 2 Collezioni in Java: il Java Collections Framework (JCF)
PROGRAMMAZIONE 2 Collezioni in Java: il Java Collections Framework (JCF) 1 Perché le collezioni Spesso in un programma dobbiamo rappresentare e manipolare gruppi di valori oppure oggetti di uno stesso
DettagliLe collezioni di oggetti. Prof. Accarino IIS Altiero Spinelli via Leopardi 132 Sesto San Giovanni
Le collezioni di oggetti Prof. Accarino IIS Altiero Spinelli via Leopardi 132 Sesto San Giovanni Contenitori di oggetti Java mette a disposizione una libreria per gestire gruppi di oggetti organizzandola
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliCollections. Laboratorio di Programmazione
Collections Dagli array alle List Interfaccia List Interfaccia Comparable Interfaccia Comparator Algoritmi polimorfi sulle liste Collections e implementazioni Set, SortedSet 1 Bank Supponiamo di voler
DettagliProgettazione del Software
Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Requisiti L applicazione
DettagliProgettazione del Software
Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016
DettagliProgrammazione a Oggetti. Astrazione sui Dati e Iteratori
Programmazione a Oggetti Astrazione sui Dati e Iteratori Sommario Astrazione sui dati Specifica di classi Invariante di rappresentazione Funzione di astrazione Iteratori inner classes astrazione sul controllo
DettagliCapitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125
Capitolo 6 Uso della gerarchia c 2005 Pearson Education Italia Capitolo 6-1 / 125 Sommario: Uso della gerarchia 1 Notazione UML per le classi 2 Introduzione alla gerarchia 3 Gerarchia e tipi La gerarchia
DettagliInterfacce. Esempio: interfaccia I con una sola funzione g() public interface I {
Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi
DettagliHeap e Code di Priorità
Heap e Code di Priorità heap heap = catasta condizione di heap 1. albero binario perfettamente bilanciato 2. ogni nodo contiene una chiave maggiore o eguale di quelle presenti negli eventuali figli non
DettagliCorso di Algoritmi e Strutture Dati con Laboratorio. Java Collections Framework (I parte)
Corso di Algoritmi e Strutture Dati con Laboratorio Java Collections Framework (I parte) L infrastruttura JCF è una raccolta di interfacce e classi, tra loro correlate, appartenenti al pacchetto java.util.
Dettaglitipi di dato astratti
tipi di dato astratti A. FERRARI ADT Un tipo di dato astratto o ADT (Abstract Data Type) è un tipo di dato le cui istanze possono essere manipolate con modalità che dipendono esclusivamente dalla semantica
DettagliProgrammazione 2 - Marco Ronchetti. Fac.Scienze Università di Trento. Collections
1 Collections 2 Riuso della conoscenza Riuso del software Algoritmi Pattern bag! 3 Che cosa hanno in comune? bag! 4 Collection: Basic operations int size(); boolean isempty(); boolean contains(object element);
DettagliLinguaggi di Programmazione: Paradigmi di Programmazione
Linguaggi di Programmazione: Paradigmi di Programmazione Strutture Dati: & Co. Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149 Torino (Italy)
DettagliStrutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05
Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica
DettagliGerarchie e polimorfismo: liste
Gerarchie e polimorfismo: liste 1 Generalizzare le liste di interi List lista di oggetti non modificabile vorremo poi definire un sottotipo versione ordinata 2 List classe astratta usate i sottotipi per
Dettagli