E21 Esercizi sulle collezioni in Java

Похожие документы
E7 Esercizi sul Capitolo 7 Realizzazione di Classi

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

E18 Esercizi su ereditarietà e polimorfismo

Esempio su strutture dati dinamiche: ArrayList

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

Esempio su strutture dati dinamiche: ArrayList

Laboratorio di Sistemi Classi e relazioni Java

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

Esempio su strutture dati dinamiche: ArrayList

Esercizio Si considerino la classe astratta Archiviabile e la classe Biblioteca:

E17 Esercizi sugli Array in Java

Esercizi Svolti. Traccia completa svolta 1. Domanda 1:

// inizializzazione della biblioteca con utenti, libri e prestiti // non richiesta Biblioteca.inizializza();

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

public BorsaStudio(String nome, String ente, int d, double r) { this.nome = nome; this.ente = ente; this.durata = d; this.

Implementare un'interfaccia

ESERCIZIO 1 ESERCIZIO 1

Laboratorio di Programmazione 1 [Java]

Diagramma delle classi UML

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

Esempi in Java di program.ne O-O

Esempio su strutture dati dinamiche: ArrayList

Ingegneria del Software

La classe java.lang.object

Esercizi della lezione 5 di Java

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a I scritto Febbraio 11 Febbraio 2011

Laboratorio di Programmazione 1 [Java]

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73

Progettazione del Software

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Esercizio Sincronizzazione Thread

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

Programmazione 1 A.A. 2015/2016

16 - Ereditarietà, tipi e gerarchie

16 - Ereditarietà, tipi e gerarchie

17 - Ereditarietà, tipi e gerarchie

Implementazione Java di un ADT

Laboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java]

Транскрипт:

E21 Esercizi sulle collezioni in Java Esercizio 1. Sia data una classe Contatto le cui istanze rappresentano contatti telefonici. Ogni contatto ha un nome, un cognome e un numero telefonico (tutti di tipo String), un costruttore che riceve come parametro il nome, il cognome e il numero di telefono associati al contatto, metodi per leggere tali valori e il metodo tostring() che restituisce una rappresentazione testuale del contatto. Scrivere una classe Rubrica che rappresenta una collezione di contatti. La classe memorizza i contatti per mezzo di una lista ed è dotata dei seguenti metodi: void aggiungicontatto(string nome, String cognome, String telefono) che aggiunge un contatto alla rubrica; void rimuovicontatto(string nome, String cognome) che rimuove dalla rubrica il contatto associato al nome e cognome dati; String cerca(string nome, String cognome) che dato un nome e cognome restituisce il numero di telefono associato a quel nome e cognome oppure null se il nome e cognome non sono presenti in rubrica; String tostring() che restituisce una descrizione testuale dell intera rubrica. Esercizio 2 (esercizio 16.4 del libro di testo). Sia definita una interface Articolo che rappresenta articoli commerciali, dotata dei metodi String getnome() che restituisce il nome dell'articolo, double getprezzo() che restituisce il prezzo dell'articolo e String tostring() che restituisce una descrizione (nome e prezzo) dell'articolo. Si scriva una classe Catalogo<E extends Articolo> che rappresenta un catalogo di articoli commerciali. La classe memorizza gli articoli in una lista ed è dotata dei metodi void aggiungiarticolo(e art) che aggiunge un articolo al catalogo, List<E> getarticolisottoprezzo(double prezzo) che restituisce una lista degli articoli il cui prezzo è minore del valore passato come parametro, e String tostring() che stampa l'intero catalogo. Esercizio 3 (esercizio 16.5 del libro di testo). Sia definita una classe Mobile che implementa l'interface Articolo definita nell'esercizio precedente e rappresenta articoli per arredamento. La classe Mobile definisce i metodi int getlarghezza(),int getaltezza() e int getprofondita() che restituiscono le dimensioni di un mobile. Si scriva una classe ProvaMobile dotata di un metodo sceglimobile che riceve in ingresso un catalogo di oggetti di tipo Mobile (o suoi sotto-tipi), un prezzo e tre dimensioni (larghezza, altezza, profondità) e restituisce un lista di mobili il cui prezzo è inferiore al prezzo dato e le cui dimensioni sono inferiori alle dimensioni date. Esercizio 4 (esercizio 16.6 del libro di testo). Scrivere un metodo generico minoridi che riceve in ingresso un array di un tipo numerico T e un valore di tipo T e restituisce una lista di elementi di tipo T contenente tutti gli elementi dell'array che sono minori del valore dato.

Soluzioni Esercizio 1 svolgimento. public class Contatto { private String nome; private String cognome; private String numero; public Contatto(String nome, String cognome, String numero) { this.nome = nome; this.cognome = cognome; this.numero = numero; public String getnome() { return this.nome; public String getcognome() { return this.cognome; public String getnumero() { return this.numero; return this.nome+" "+this.cognome+": "+this.numero; import java.util.arraylist; import java.util.iterator; import java.util.list;

public class Rubrica { private List<Contatto> contatti; public Rubrica(){ this.contatti=new ArrayList<Contatto>(); void aggiungicontatto(string nome, String cognome, String telefono){ this.contatti.add(new Contatto(nome, cognome, telefono)); void rimuovicontatto(string nome, String cognome){ boolean rimosso=false; Iterator<Contatto> it=this.contatti.iterator(); while(it.hasnext() &&!rimosso){ Contatto c=it.next(); if(c.getnome().equals(nome)&& c.getcognome().equals(cognome)){ it.remove(); rimosso=true; String cerca(string nome, String cognome){ String numero=null; Iterator<Contatto> it=this.contatti.iterator(); while(it.hasnext() && numero==null){ Contatto c=it.next(); if(c.getnome().equals(nome)&& c.getcognome().equals(cognome)) numero=c.getnumero(); return numero; String s="rubrica\n"; s+="---------------------------\n"; Iterator<Contatto> it=this.contatti.iterator(); Contatto c=it.next(); s+=c.tostring()+"\n"; return s; Esercizio 2 svolgimento. public interface Articolo { public String getnome();

public double getprezzo(); public String tostring(); import java.util.arraylist; import java.util.iterator; import java.util.list; public class Catalogo<E extends Articolo> { private List<E> catalogo; public Catalogo(){ this.catalogo=new ArrayList<E>(); void aggiungiarticolo(e art){ this.catalogo.add(art); List<E> getarticolisottoprezzo(double prezzo){ List<E> articoli=new ArrayList<E>(); Iterator<E> it=this.catalogo.iterator(); E el=it.next(); if(el.getprezzo()<prezzo){ articoli.add(el); return articoli; String s="catalogo articoli"; s+="---------------------\n"; Iterator<E> it=this.catalogo.iterator(); E el=it.next(); s+=el.tostring()+"\n"; return s; Esercizio 3 svolgimento. public class Mobile implements Articolo { private String nome;

private double prezzo; private double lunghezza; private double altezza; private double profondità; public Mobile(String nome, double prezzo, double lunghezza, double altezza, double profondità) { this.nome = nome; this.prezzo = prezzo; this.lunghezza = lunghezza; this.altezza = altezza; this.profondità = profondità; public double getlunghezza() { return lunghezza; public double getaltezza() { return altezza; public double getprofondità() { return profondità; public String getnome() { return this.nome; public double getprezzo() { return this.prezzo; return this.nome+" Prezzo: "+prezzo+" Misure: "+lunghezza+" X " +altezza+" X "+profondità; import java.util.arraylist; import java.util.iterator; import java.util.list; public class ProvaMobile {

public static <T extends Mobile> List<T> sceglimobile( Catalogo <T> catalogo, double prezzo, double lunghezza, double altezza, double profondità){ List<T> selezionati=new ArrayList<T>(); List<T> selezionatiperprezzo= catalogo.getarticolisottoprezzo(prezzo); Iterator<T> it=selezionatiperprezzo.iterator(); T el=it.next(); if(el.getlunghezza()<lunghezza && el.getaltezza()<altezza && el.getprofondità()<profondità){ selezionati.add(el); return selezionati; Esercizio 4 svolgimento. public static <T extends Number> List<T> minoridi(t[] arr, T el){ List<T> minori=new ArrayList<T>(); for(int i=0;i<arr.length;i++) if(arr[i].doublevalue()<el.doublevalue()) minori.add(arr[i]); return minori;