Testo di Riferimento (usato nei corsi precedenti)
|
|
- Oliviero Lelli
- 6 anni fa
- Visualizzazioni
Transcript
1 Parti II e III 1
2 Framework Collections in Java: API Java Generics in Java Tutorial Sun (in inglese) Testo di Riferimento (usato nei corsi precedenti) Horstmann - Concetti di informatica e fondamenti di Java Apogeo 2
3 Collection Framework (contd ) 3
4 Data la porzione di codice static int segreto(arraylist a) { int r = ((Integer) a.get(0)).intvalue(); Iterator i = a.iterator(); while (i.hasnext()) { int c=((integer)i.next()).intvalue(); if (c<r) r=c; return(r); Con input ArrayList a = new ArrayList();a.add(3);a.add(5); A) il metodo calcola la somma dei valori B) il metodo calcola il minimo dei valori del vettore C) il metodo calcola il massimo dei valori del vettore D) il metodo genera una eccezione in esecuzione
5 Data la porzione di codice static boolean segreto2(iterator i) { int prec = ((Integer) i.next()); while (i.hasnext()) { int c=((integer)i.next()).intvalue(); if (prec>c) return false; return(true); Con input ArrayList a = new ArrayList(); a.add( 3 ); a.add( 5 ); segreto2(a.iterator()) A) il metodo genera una eccezione in esecuzione B) il metodo calcola il massimo dei valori del vettore C) il metodo ritorna vero se la sequenza di valori è crescente D) il metodo ritorna vero se la sequenza di valori è decrescente
6 Data la porzione di codice static void segreto3(arraylist a, Object v) { for (int i = a.size(); i < a.size()+10; i++) { final Object valore = a.get(i); if (valore == null) a.set(i, v); A) il metodo sostituisce gli elementi nulli del vettore con v B) il metodo genera una eccezione di cast in esecuzione C) il metodo genera una eccezione di index out of bound in esecuzione D) il metodo stampa i valori del vettore
7 B A - C 7
8 In stazione c e un treno passeggeri pronto a partire. Due amici devono prendere il treno ma non vogliono viaggiare in piedi; chiedono allora al capotreno se ci sono posti a sedere e gli viene risposto che ce n è rimasto uno solo in tutto il treno. I due amici decidono allora di salire uno in testa e uno in coda e procedendo alla stessa velocità vanno alla ricerca del vagone in cui si trova il posto libero: il primo che lo trova si siederà. Rappresentando il treno come una lista di interi che indicano i posti rimasti liberi in ciascun vagone, scrivere una funzione in grado di dire quale dei due amici si siederà (quello salito in testa o quello salito in coda) static int trovaposto(arraylist treno) Ritorna 1 se si siede l amico salito in testa, 2 se quello salito in cosa e 0 se arrivano insieme al vagone con l unico posto libero
9 static int trovaposto(arraylist treno) { boolean trovato = false; int i = 0; do { Integer postiliberi = (Integer) treno.get(i); if (postiliberi.intvalue() > 0) { trovato = true; else i++; while (!trovato && i < treno.size()); if (!trovato) return -1; if (i<treno.size()/2)return 1; else if (i>treno.size()/2)return 2; else return 0; 9
10 I Generics 10
11 Le liste e gli insiemi sono collezioni di variabili Object Ogni volta che si vuole accedere agli elementi occorre fare il cast ArrayList a=new ArrayList(); a.add( una stringa ); String s=(string) a.get(0); Ad una stessa collezione posso aggiungere elementi di tipi differenti non posso specificare che sono ammessi solo oggetti di un certo tipo ArrayList a=new ArrayList(); a.add(new Integer(10)); a.add( una stringa ); Si possono definire collezioni di tipi particolari? Esempio: lista di Point, insieme di Studente, ecc. 11
12 Si può specificare che una lista contiene solo elementi di un certo tipo: LinkedList<Studente> l = new LinkedList<Studente>(); Una volta fatto questo, è come se la lista fosse una sequenza di variabili Studente, invece che una lista di variabili Object: si possono solo inserire oggetti Studente (o sottoclassi): l.add(new Point(20,30)); è un errore; il valore di ritorno di get è di tipo Studente Cosa cambia si mette <Tipo> nella dichiarazione di variabile e nel costruttore; al posto di Object, si usa sempre Tipo in tutti i metodi (get, add, ecc.) 12
13 Definire una Lista di studenti: import java.util.*; class ListStud { public static void main(string args[]) { LinkedList<Studente> l; l=new LinkedList<Studente>(); l.add(new Studente("Ciccio", )); l.add(new Studente("Franco", )); // errore // l.add(new Point(20,30)); Studente s=l.get(1); 13
14 Introduzione Programmazione generica: creazione di costrutti di programmazione che possano essere utilizzati con tipi di dati diversi. In Java si può raggiungere l obiettivo della programmazione generica usando l ereditarietà oppure le variabili di tipo. Esempio: ArrayList di Java ArrayList<String> Classe generica: : è stata dichiarata usando una variabile di tipo E. La variabile di tipo rappresenta il tipo degli elementi: public class ArrayList<E> // si può usare "ElementType" invece di E { public ArrayList() {... public void add(e element) {
15 Creazione di variabili di classi generiche Le variabili di tipo possono essere sostituite, all atto della creazione di esemplari, con nomi di classe o di interfacce ArrayList<String> ArrayList<MyClass> Non si può usare come sostituto uno degli otto tipi di dati primitivi ArrayList<double> // Sbagliato! Usate un esemplare di ArrayList<Double> Esempi: ArrayList<String> a = new ArrayList<String>(); LinkedList<String> b = new LinkedList<String>(); 15
16 I metodi delle classi generiche Il tipo di dato che indicate va a sostituire la variabile di tipo utilizzata nella definizione dell interfaccia o della classe generica Esempio: nel metodoadd di un oggetto di tipo ArrayList<String> la variabile di tipo E viene sostituita dal tipo String public void add(string element) public String get(int index) Esempi: ArrayList<String> a =new ArrayList<String>(); String s=a.get(0);//no cast Iterator<String>=a.iterator(); //ritorna un iterator generico a.add( paperino );//non posso usare tipi differenti da String 16
17 Caratteristiche delle classi generiche Le variabili di tipo rendono più sicuro e di più facile comprensione il codice generico. E impossibile aggiungere un oggetto di tipointeger ad un esemplare diarraylist<string> È invece possibile aggiungere un oggetto di tipo Integer ad un esemplare diarraylist (senza generics) che sia stato creato con l intenzione di usarlo per contenere stringhe Tutte le classi del JCF sono generiche Collection<E>, Set<E>, List<E> ArrayList<E>, LinkedList<E> Iterator<E> 17
18 Esempi di utilizzo ArrayList<String> a1 = new ArrayList<String>(); Integer numero=new Integer(30); // Dovrebbe contenere oggetti di tipo String LinkedList a2 = new LinkedList(); // errore di compilazione a1.add(numero); // errore non individuato dal compilatore a2.add(numero); //errore di esecuzione String account = (String) a2.get(0); 18
19 ArrayList<E> boolean add(e e) void add(int index, E element) E get(int index) E set(int index, E element) void clear() Iterator<E> iterator() int size() Iterator<E> boolean hasnext() E next() void remove() 19
20 Scrivere un metodo java int somma(arraylist<integer> a) che somma gli elementi del vettore di interi Somma: 22 Tempo 5 minuti 20
21 public static int somma(arraylist<integer> a){ int somma=0; for (int i=0;i<a.size();i++){ Integer elem=a.get(i) somma=somma+elem.intvalue(); return somma; Per esercizio: implementare il metodo somma utilizzando gli iteratori 21
22 Collection<E>: List<E> ArrayList<E> LinkedList<E> Vector<E> Set<E> SortedSet<E> TreeSet<E> HashSet<E> LinkedHashSet<E> Altre interfacce disponibili Queue<E>,Dequeue<E>,Stack<E>, Map<K,V>, SortedMap<K,V> 22
23 PARTE 1: Confrontare il codice delle varie implementazioni del metodo somma ed evidenziarne le differenze PARTE 2: Scrivere un metodo Java che dato un ArrayList<String> di stringhe restituisca una unica stringa che e la concatenazione di tutti i suoi elementi. 23
24 Scrivere il metodo Java void inverte(arraylist<integer> a) che prende un ArrayList<Integer> e ne inverte l ordine degli elementi L elemento in posizione i va scambiato con quello in posizione n-i Scrivere il metodo Java ArrayList<Integer> duplica(integer v, int n) che prende un valore v e un numero n e ritorna un ArrayList<Integer> contenente n elementi di valore v 24
25 Data la porzione di codice: ArrayList<String> s=new ArrayList<String>(); a.add(new Integer(10)); ArrayList p=new ArrayList (); p.add(new Integer(10)); Indicare quali, tra le istruzioni seguenti, genera un errore in compilazione o in esecuzione (eccezione): 1. s.add( paperino ); 2. s.add(new Integer(10)); 3. String q=s.get(0); 4. Object o=s.get(0); 5. Integer i=s.get(0); 6. s.add(s.get(0)); 7. p.add( paperino ); 8. p.add(new Integer(10)); 9. String q=p.get(0); 10. Object o=p.get(0); 11. Integer i=p.get(0); 12. p.add(p.get(0)); Verificare le risposte al calcolatore 25
26 Comparable
27 Si può ordinare un array di Object? No, perchè non esiste un ordinamento per tutti gli oggetti Per ordinare un insieme di oggetti, deve esistere una funzione di confronto di questi oggetti Interfaccia predefinita Comparable: rappresenta tutti gli oggetti sui quali è definito un ordinamento totale 27
28 interface Comparable<T> { public int compareto(t o); interface Comparable { public int compareto(oject o); Se una classe implementa Comparable, allora ha un metodocompareto(t o) Quando si definisce una classe, il metodo compareto viene implementato in modo tale che a.compareto(b) ritorna: un valore minore di zero se a è minore di b uguale a zero se a è uguale a b un valore maggiore di zero se a è maggiore di b 28
29 La definizione del metodo compareto è semplicemente che si tratta di un metodo che ha un Object come argomento e ritorna un int Il fatto che a.compareto(b) dice se a è minore, uguale o maggiore di b è una convenzione Non c'è nessun vincolo sintattico che ci obbliga a implementare compareto come il confronto: class Strana implements Comparable<Strana> { public int compareto(strana o) { return (int) Math.random()*2-1; È un errore semantico/concettuale Effetto di un errore del genere: i metodi che lavorano su oggetti Comparable si comportano in modo anomalo Una cosa simile succede per equals 29
30 public static class Studente implements Comparable<Studente> { private String nome; private String cognome; public Studente(String nome, String cognome) { this.nome = nome; this.cognome = cognome; public int compareto(studente o) { int compcognome=cognome.compareto(o.cognome); if (compcognome!= 0) return compcognome; else return nome.compareto(o.nome); public String getcognome() {return cognome; public String getnome() {return nome; Esercizio per casa: ordinare gli studenti in ordine decrescente 30
31 Metodo che ordina un array di due elementi: static void ordina(comparable c[]) { Comparable t; if(c[0].compareto(c[1])<=0) return; t=c[0]; c[0]=c[1]; c[1]=t; Esempio di programma: public static void main(string args[]) { Integer a[]=new Integer[2]; a[0]=new Integer(4); a[1]=new Integer(2); ordina(a); System.out.println(a[0]+" "+a[1]); 31
32 Lo stesso metodo funziona per qualsiasi classe che implementa l'interfaccia Comparable String implementa Comparable L'ordinamento fra stringhe è quello lessicografico (detto anche alfabetico...) String b[]=new String[2]; b[0]="ciccio"; b[1]="bruno"; ordina(b); System.out.println(b[0]+" "+b[1]); Uso lo stesso metodo per le stringhe 32
33 Principali interfacce definite nel JCF Collection un multiinsieme non ordinato List una sequenza ordinata di elementi Set un insieme (non ordinato) di elementi SortedSet un insieme ordinato per compareto Map un tabella (non trattata nel corso) 33
34 Differenza List e SortedSet List gli elementi sono in una sequenza qualsiasi SortedSet gli elementi sono ordinati secondo l'ordinamento specificato da compareto Attenzione! Nell'interfaccia SortedSet non esiste il metodo get(int index) Gli iteratori di SortedSet scandiscono l'insieme in ordine crescente 34
35 Esempio: inserisco alcuni interi e poi li stampo: La classe TreeSet implementa l'interfaccia SortedSet public static void main(string args[]) { SortedSet<Integer> s=new TreeSet<Integer>(); s.add(new Integer(21)); s.add(new Integer(0)); s.add(new Integer(4)); Iterator i=s.iterator(); while(i.hasnext()) System.out.println(i.next()); Viene stampato: Gli iteratori scandiscono l'insieme in ordine L'ordinamento che is usa è quello dato da compareto 35
36 Implementare il bubble sort di un vettore di elementi comparable void bubblesort(arraylist<comparable> a) Suggerimenti: Utilizzare il metodo compareto per confrontare gli elementi 36
37 public static void bubblesort(arraylist<comparable> a) { { int end = a.size() - 1; boolean scambio = true; while (scambio) { scambio = false; for (int i = 0; i < end; i++) { //a[i+1]<a[i] if (a.get(i + 1).compareTo(a.get(i)) < 0) scambia(a, i, i + 1); scambio = true; //Ho gia' portato l'elemento //piu' pesante in fondo all'array end--; 37
38 private static void scambia (ArrayList<Comparable> a, int i, int j) { Comparable temp = a.get(i); a.set(i, a.get(j)); a.set(j, temp); 38
Generics & 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
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)
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
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
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
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
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
DettagliIl linguaggio Java: aggiunte in Java 1.5
.. Il linguaggio Java: aggiunte in Java 1.5 Una breve presentazione GENERICI Java 1.5 introduce i generici: classi che hanno un parametro di tipo. Nelle versioni precedenti a Java 1.5 si può definire:
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
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
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
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/
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
DettagliCosa sono i Generics?
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 13 - Generics in Java 1 Cosa
DettagliFondamenti di Informatica L-B Esercitazione n 6 Java: Collezioni, Classe Wrapper & Generics
Fondamenti di Informatica L-B Esercitazione n 6 Java: Collezioni, Classe Wrapper & Generics A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Strutture Dati in Java Molto spesso,
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
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
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 8 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliCapitolo 16. Programmazione generica. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione
Capitolo 16 Programmazione generica Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Capire gli obiettivi della programmazione generica Essere in grado
DettagliRicerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5
Ricerca e ordinamento su array di oggetti Corso di Programmazione 2 Esercitazione 5 Sommario Ricercare in array di oggetti Interfaccia comparable Ordinare array di oggetti Problema Come ordinare, ricercare
DettagliIntroduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
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
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
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
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
DettagliEsempi in Java di program.ne O-O
Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico
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
DettagliJava Collection Framework
STRUTTURE DATI IN JAVA Strutture Dati nella piattaforma Java: Java Collection Framework Java Collection Framework (JCF) fornisce il supporto a qualunque tipo di struttura dati interfacce una classe Collections
DettagliCapitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73
Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe
DettagliLinguaggi di programmazione II AA 2010/2011 Esercitazione 2
Linguaggi di programmazione II AA 2010/2011 Esercitazione 2 1) Scrivere l'output del seguente programma Java public class Bean private String str; Bean(String str ) this.str = str; public String tostring()
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
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliOCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 8 SE PROGRAMMER
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
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliAlgoritmi di ordinamento
Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min
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
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
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2011-12 17 settembre 2012 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliProgrammazione. ( a.k.a. Generics )
Programmazione Parametrica ( a.k.a. Generics ) Programmazione parametrica: introduzione Generics e relationi di sottotipo wildcards generics e vincoli Implementazione di classi e metodi parametrici Supporto
DettagliLe liste. ADT e strutture dati per la rappresentazione di sequenze. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 5
Le liste ADT e strutture dati per la rappresentazione di sequenze L ADT delle liste Una lista di valori di tipo A è una sequenza finita: a1, a2, L, an dove ai A, per ogni i valore lunghezza posizione L
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.
DettagliImplementazione Java di un ADT
Implementazione Java di un ADT Primo passo definire l'interfaccia (API) dell' ADT (l'api descrive i nomi dei metodi che l'adt supporta e come essi sono dichiarati e usati) Secondo passo scrivere il codice
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
DettagliTelematica II 15. Esercitazione/Laboratorio 5
Protocollo FTP FTP Client TCP control connection (port 21) FTP Server Telematica II 15. Esercitazione/Laboratorio 5 File System locale TCP data connection (port( 20) File System remoto La connessione di
DettagliVariabili e Metodi di classe Interfacce e Package Gestione di File in Java
Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe
DettagliEreditarietà. Ereditarietà. Ereditarietà. Ereditarietà
L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe
DettagliGenerics in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Generics in Java 1 Cosa sono i Generics?
DettagliIl TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3
Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali
DettagliLa classe java.lang.object
La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita
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
DettagliPolimorfismo parametrico vs polimorfismo per inclusione
Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico
DettagliLaboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una
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.
DettagliCorso di Progettazione del Software
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
DettagliFondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array
Fondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Interfaccia Comparable L altra volta abbiamo
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento
DettagliESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:
ESERCIZI JAVA Esercizi sulle Interfacce Esercizio 1: Java mette a disposizione un'interfaccia chiamata Comparable. Quando un oggetto implementa questa interfaccia esso può implementare un metodo chiamato
DettagliCorso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)
Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti (Esercizi) Esercizio 5 Sia data la seguente classe che rappresenta un conto bancario class Conto private double saldo; public Conto(double saldo) throws IllegalArgumentException
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliFondamenti di Informatica T1 Mappe
Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 16 Mappe Matrice N x 2 : Gli elementi della prima colonna,
DettagliListe concatenate. Collezione ordinata di nodi. Carlo Paolo Simona. Anna. ciascun nodo contiene due riferimenti:
Liste concatenate Collezione ordinata di nodi head tail next next next next element element element element Ø Anna Carlo Paolo Simona ciascun nodo contiene due riferimenti: - un riferimento "element" a
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore
DettagliLaboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero
DettagliCognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 22 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliArray. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere
DettagliCapitolo 17. Introduzione alle strutture di dati. Capitolo 17 Introduzione alle strutture di dati
Capitolo 17 Introduzione alle strutture di dati 1 Figura 1 Inserire un elemento in una lista concatenata 2 Figura 2 Un iteratore di lista 3 Figura 3 Una visione astratta dell iteratore di lista 4 File
DettagliIl Linguaggio Java. Le interfacce
Il Linguaggio Java Le interfacce Ordinamento dei conti PROBLEMA: si vogliono ordinare i libretti di risparmio (SavingsAccount) in base al loro tasso di interesse REQUISITO: La classe dovrebbe essere ordinabile,
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),
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
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliJava. Classi Anonime In Java Da Java 1.1 si possono usare classi anonime per implementare interfacce. Espressioni Lambda. Implementazione Interfaccia
Java I nuovi paradigmi e linguaggi tendono a semplificare il lavoro del programmatore, nascondendo dentro le librerie (o i costrutti del linguaggio) parte della programmazione necessaria Da Java 5, in
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Prova Intermedia Marzo 2011 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia La Prova Intermedia
DettagliImplementazione ADT: Alberi
Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a febbraio 2013
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 22 febbraio 2013 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliLezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
DettagliNota: questo discorso vale solo per i metodi e le componenti che esistono in tutte e due le classi
Liste Esistono dei tipi predefiniti in Java per liste e insiemi Breve riepilogo Variabili: 1. ogni oggetto si può mettere in Object 2. per il passo inverso, serve il cast Quando la variabile è di un tipo
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
DettagliIL CONCETTO DI CLASSE
IL CONCETTO DI CLASSE Una CLASSE riunisce le proprietà di: componente software: può essere dotata di suoi propri dati / operazioni moduli: riunisce dati e relative operazioni, fornendo idonei meccanismi
Dettagli16 - Ereditarietà, tipi e gerarchie
16 - Ereditarietà, tipi e gerarchie Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo
Dettagli3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;
Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso
DettagliCOMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 NOME COGNOME MATRICOLA Scrivere in stampatello Nome, Cognome e Matricola su ogni foglio consegnato. ESERCIZIO 1. Si consideri il seguente
DettagliProgrammazione orientata agli oggetti Classi astratte e interfacce
Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma
DettagliAstrazioni Polimorfe e Tipi Generici
Astrazioni Polimorfe e Tipi Generici Polimorfismo Dal Greco molte forme Una variabile polimorfa può riferirsi a oggetti di classi diverse Un metodo polimorfo può avere parametri di tipi diversi Un tipo
DettagliErrata Corrige di Manuale di Java 8
Errata Corrige di Manuale di Java 8 pag. 43 - par. 2.5.1 - primo riquadro che riporta linee di codice public class Punto { public Punto() //metodo costruttore { deve essere corretto come di seguito: public
DettagliIntroduzione a Java. Riferimenti
Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia
Dettagli