Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.

Slides:



Advertisements
Presentazioni simili
Argomenti della lezione
Advertisements

Tipi di dato astratti Lista, Pila, Coda, Albero.
Iterazione Capitolo 17 febbraio 2004 Iterazione.
Array di array Capitolo 20 febbraio 2004 Array di array.
Istruzioni condizionali e blocco
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
MultiSet, Liste Ordinate
Le gerarchie di tipi.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
1 Le gerarchie di tipi: implementazioni multiple e principio di sostituzione.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Corso di Informatica (Programmazione)
Astrazioni sul controllo Iteratori. 2 Nuove iterazioni Definendo un nuovo tipo come collezione di oggetti (p. es., set) si vorrebbe disporre anche di.
Specifiche senza JML: uso delle asserzioni. 2 Asserzioni in Java Dal jdk 1.4 (da Febbraio 2002) cè meccanismo per gestire asserzioni Asserzione: espressione.
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Scomposizione di stringhe
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Algoritmi e Strutture Dati IV. Heap e Code di Priorità
Argomenti della lezione
Selezione (=scelta) con “if-else”
1 Le gerarchie di tipi. 2 Supertipi e sottotipi 4 un supertipo –class –interface 4 può avere più sottotipi –un sottotipo extends il supertipo ( class.
Java Collections.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Corso di informatica Athena – Periti Informatici
Diagramma di flusso del problema del Supermercato.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
1 Applet ed HTML Fondamenti di Informatica Corso D.
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A Collezioni di dati in Java.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Collection & Generics in Java
Esercizi.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Università degli Studi dell’Aquila
1 Un esempio con iteratore: le liste ordinate di interi.
Definizione di classi Capitolo 18 febbraio 2004 Definizione di classi.
Variabili e assegnazione
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl.
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Liste di Interi Esercitazione. IntList Lista di interi Una lista è una disposizione ordinata di elementi ( non in modo crescente-descrescente, ma per.
1 Gerarchie e polimorfismo: liste. 2 Generalizzare le liste di interi  List 4 lista di oggetti –non modificabile 4 vorremo poi definire un sottotipo.
Capitolo 17 Introduzione alle strutture dati Tratti da ©2002 Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2 1 Liste Introduzione alle.
1 Astrazione sul controllo: gli iteratori. 2 Gli iteratori 4 perché vogliamo iterarare “in modo astratto” 4 iteratori e generatori in Java –specifica.
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Esercitazione 14 Marzo Esercizio dell’altra volta Definire un tipo di dato Abbonato i cui oggetti descrivono le informazioni relative ad un abbonato.
Esercizi iteratori. Matrice import java.util.Iterator; public class MatrixIterator implements Iterator { private Matrix matrix; private int currentRow.
1 Un esempio con iteratore: le liste ordinate di interi.
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
LIP: 15 Marzo 2005 Vettori di interi. Esercizio proposto Definire una classe VectorInt i cui oggetti sono vettori omogenei di interi ordinati in modo.
Corso di Algoritmi e Strutture Dati con Laboratorio Java Collections Framework (I parte)
Corso di Algoritmi e Strutture Dati con Laboratorio Java Collections Framework (II parte)
Collezioni in Java. Collection Framework JFC Java Collection Framework (JCF) fornisce il supporto a qualunque tipo di struttura dati, nel quadro di un'architettura.
Collection & Generics in Java
Transcript della presentazione:

Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni1 Capitolo 26 marzo 2004

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni2 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere e proprie) mappe implementate dal Java Collections Framework (JFC) un insieme di interfacce e classi package java.util

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni3 Le principali interfacce del JCF Collection rappresenta una generica collezione List rappresenta una lista Set rappresenta un insieme Map rappresenta una mappa Iterator supporta la visita dei contenitori «interfaccia» Collection estende «interfaccia» Map «interfaccia» Set «interfaccia» List estende «interfaccia» Iterator

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni4 Una collezione un gruppo di oggetti interfaccia Collection nessuna implementazione diretta

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni5 Operazioni sulle collezioni Operazioni principali boolean add(Object o) boolean contains(Object o) boolean remove(Object o) int size() boolean isEmpty() Iterator iterator()

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni6 Insiemi Un insieme una collezione di elementi – senza duplicati interfaccia Set che estende Collection HashSet e TreeSet

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni7 Operazioni sugli insiemi Operazioni principali boolean add(Object o) boolean contains(Object o) boolean remove(Object o) int size() boolean isEmpty() Iterator iterator()

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni8 Esempio – gestione di un insieme di stringhe import java.util.*;... Set s; // un insieme di stringhe /* crea un nuovo insieme s */ s = new HashSet(); /* inserisce alcune stringhe nell’insieme s */ s.add("uno"); s.add("due"); s.add("tre"); /* accede all’insieme */ System.out.println( s.size() ); // 3 System.out.println( s.contains("uno") ); // true System.out.println( s.contains("sei") ); // false System.out.println( s.toString() ); // [tre, uno, due]

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni9 Esempio – gestione di un insieme di stringhe /* modifica l’insieme s */ s.add("uno"); // s non cambia System.out.println( s.size() ); // 3 s.remove("due"); System.out.println( s.size() ); // 2 System.out.println( s.toString() ); // [tre, uno] s.add("alfa"); s.add("beta"); System.out.println( s.size() ); // 4

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni10 Iteratori Un iteratore è un oggetto di supporto usato per accedere gli elementi di una collezione, uno alla volta e in sequenza Operazioni del tipo Iterator boolean hasNext() Object next() void remove()

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni11 Uso di un iteratore /* Visualizza sullo schermo gli elementi dell’insieme s. */ public static void visualizza(Set s) { // pre: s!=null Iterator i; // per visitare gli elementi di s Object o; // un elemento di s /* visita e visualizza gli elementi di s */ i = s.iterator(); while ( i.hasNext() ) { o = i.next(); System.out.println(o.toString()); }

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni12 Visita di collezioni di oggetti omogenei /* Calcola la stringa più lunga * dell’insieme s di stringhe. */ public static String piùLunga(Set s) { // pre: s!=null && s.size()>0 && // gli elementi di s sono tutte stringhe Iterator i; // per visitare gli elementi di s String t; // un elemento di s String lunga; // la stringa più lunga di s /* visita s cercando la stringa più lunga */ i = s.iterator(); lunga = (String) i.next(); while ( i.hasNext() ) { t = (String) i.next(); if (t.length()>lunga.length()) lunga = t; } return lunga; }

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni13 Liste Una lista una sequenza di elementi interfaccia List che estende Collection è possibile l’accesso posizionale ArrayList e LinkedList

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni14 Operazioni sulle liste Operazioni principali boolean add(Object o) boolean contains(Object o) boolean remove(Object o) int size() boolean isEmpty() Iterator iterator()

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni15 Operazioni di accesso posizionale Operazioni principali per l’accesso posizionale Object get(int i) Object set(int i, Object o) Object remove(int i) void add(int i, Object o) int indexOf(Object o)

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni16 Esempio – gestione di una lista di stringhe List l; // una lista di stringhe /* crea una nuova lista l */ l = new LinkedList(); /* inserisce alcune stringhe nella lista l */ l.add("due"); l.add("quattro"); l.add("sei"); /* accede alla lista */ System.out.println( l.size() ); // 3 System.out.println( l.get(0) ); // due System.out.println( l.toString() ); // [due, quattro, sei]

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni17 Esempio – gestione di una lista di stringhe /* modifica la lista l */ l.add(1, "tre"); // tra "due" e "quattro" System.out.println( l.toString() ); // [due, tre, quattro, sei] l.add(0, "uno"); // inserimento in testa System.out.println( l.toString() ); // [uno, due, tre, quattro, sei] l.remove(4); // cancella "sei" System.out.println( l.size() ); // 4 System.out.println( l.toString() ); // [uno, due, tre, quattro]

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni18 Legge una sequenza di interi e la scrive al contrario List l; // una sequenza di numeri interi Integer nn; // un elemento di l int n; // numero letto dalla tastiera int i; // per scandire gli elementi di l /* legge e memorizza la sequenza di numeri */ l = new ArrayList(); while (!Lettore.in.eoln()) { n = Lettore.in.leggiInt(); nn = new Integer(n); l.add(nn); } /* scandisce la lista al contrario */ for (i=l.size()-1; i>=0; i--) { nn = (Integer) l.get(i); n = nn.intValue(); System.out.print(n + " "); } System.out.println();

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni19 Mappe Una mappa un insieme di coppie (chiave, valore) – che non contiene chiavi duplicate interfaccia Map HashMap e TreeMap

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni20 Operazioni sulle mappe Operazioni principali Object put(Object k, Object v) Object get(Object k) Object remove(Object k) int size() boolean isEmpty() Set keySet()

Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies srl Collezioni21 Esempio – dizionario italiano-inglese Map m; // un insieme di coppie // (parola italiana, traduzione inglese) /* crea una nuova mappa m */ m = new HashMap(); /* inserisce alcune coppie nella mappa m */ m.put("uno", "one"); m.put("due", "two"); m.put("tre", "tree"); // oops... /* accede alla mappa */ System.out.println( m.size() ); // 3 System.out.println( m.get("uno") ); // one System.out.println( m.get("sei") ); // null System.out.println( m.toString() ); // {tre=tree, uno=one, due=two} /* modifica la mappa m */ m.put("tre", "three"); // così è meglio System.out.println( m.size() ); // ancora 3 System.out.println( m.get("tre") ); // three