D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

– {NORD, SUD, EST, OVEST}

I nomi dei valori di un tipo enum sono in lettere maiuscole trattandosi di costanti.

Un esempio di definizione di un tipo enum può essere:

public enum Giorno {

LUNEDI, MARTEDI, MERCOLEDI, GIOVEDI,

VENERDI, SABATO, DOMENICA }

116. cosa sono le classi numeriche in Java? Si faccia un esempio di utilizzo

In generale quando ci troviamo a lavorare con valori numerici usiamo i tipi primitivi che

però non sono oggetti in quanto non sono istanze di classe.

Ci sono situazioni in cui è però opportuno o necessario usare oggetti in luogo dei tipi

primitivi e così in Java esistono classi wrapper per ogni tipo di dato primitivo.

Le classi wrapper numeriche sono sotto classi della classe Number e si chiamano tutte

come il primitivo, ma con la prima lettera maiuscola, ad eccezione di Integer che è i

wrapper di int.

Si usano classi numeriche in quanto molte collezioni lavorano su oggetti e non su tipi

primitivi: ad esempio Vector può contenere istanze di Integer ma non di int.

Le classi wrapper definiscono vari metodi statici per convertire valori da e verso i tipi

primitivi, da e verso le stringhe, e per la conversione tra diversi sistemi numerici (decimale,

ottale, esadecimale, binario).

LEZ 011

117. Con riferimento al Java, si introducano gli eventi

Ogni volta che l’utente di un programma scrive qualcosa, seleziona col mouse un controllo

del programma, sposta o ridimensiona una finestra ecc.., viene generato un evento. Ogni

evento ha una Sorgente (event source), che è il controllo che l’ha generato: ad esempio, il

bottone che è stato premuto dall’utente. In tale oggetto possono essere registrati uno o

più ascoltatori (event listener), cioè oggetti in grado di intraprendere le azioni necessarie a

gestire l’evento.

Ad ogni event source è possibile associare più di un event listener: in questo modo, quando

si verifica l’evento tutti gli ascoltatori vengono attivati sequenzialmente, nell’ordine in cui

sono stati registrati .

118. Con riferimento al Java, si introduca ActionListener

La ActionListener è una interfaccia che viene notificata ogni volta che si fa clic su un

pulsante,su una voce di un menù o si fa un Return su una riga di testo. L'interfaccia

ActionListener si trova nel pacchetto java.awt.event.

Ha solo un metodo: actionPerformed () che dovrà essere scritta esattamente così e

chiunche implementi ActionListener dovrà definire un metodo actionPerformed ()

dichiaratoesattamente come previsto da ActionListener.

LEZ 012

119. Si introducano le enità principali che fanno parte del Java Collections Framework

JFC offre 13 tipi diversi di collezione per uso generale, più varie altre classi specializzate per

usi particolari. In questa lezione presentiamo tre classi principali, il cui uso copre una vasta

gamma di esigenze:

 ArrayList che implementa un array di riferimenti a oggetti. L'array ha dimensioni

variabili: è in grado di crescere e decrescere automaticamente secondo

necessità.Implementa inoltre l'interfaccia List (v. oltre), quindi la collezione può

essere manipolata come se fosse una lista, con inserimenti e rimozioni in qualunque

posizione (costo computazionale O(n)), e visitata mediante l'interfaccia Iterator

 HashSet che implementa un insieme (set) di riferimenti a oggetti. L'insieme ha

dimensioni variabili: è in grado di crescere e decrescere automaticamente secondo

necessità.

A differenza di ArrayList, HashSet non ammette elementi duplicati: tutti gli elementi

della collezione devono essere diversi. Inoltre la posizione di un dato elemento

nella collezione non è rilevante: la collezione non mantiene l'ordinamento dei suoi

elementi.

HashSet implementa l'interfaccia Set (v. oltre), che prevede metodi per inserimento

e rimozione (costo computazionale O(1), costante), e visita mediante l'interfaccia

Iterator

 HashMap che implementa una hash table di riferimenti a oggetti. La tabella hash ha

dimensioni variabili: è in grado di crescere e decrescere automaticamente secondo

necessità.

Gli elementi della collezione sono coppie <chiave, valore> dove sia la chiave che il

valore sono tipi reference (oggetti, non valori primitivi). Non sono ammessi

duplicati: ogni chiave può mappare al massimo un valore.

HashMap non mantiene l'ordinamento dei suoi elementi.

HashMap implementa l'interfaccia Map (v. oltre), che prevede metodi per

inserimento e rimozione (costo computazionale O(1) nel caso ottimale), estrazione

degli insiemi delle chiavi e dei valori, ricerca di una chiave o di un valore.

Due parametri regolano le prestazioni di una HashMap: la capacità iniziale (lo spazio

allocato inizialmente, a tabella vuota) e il fattore di carico (la percentuale massima

di spazio occupato). Ogni volta che il numero di elementi supera la capacità della

collezione per il fattore di carico, la tabella viene automaticamente riallocata

raddoppiandone la capacità.

120. Cosa è il Java Collections Framework (JCF) ?

Col termine Collections Framework in Java si denota un'architettura unificata per la

rappresentazione e la manipolazione di collezioni.

Il Java Collections Framework (JCF) contiene:

 Interfacce: tipi di dato astratto che permettono di manipolare le collezioni

indipendentemente dai dettagli delle loro implementazioni.

 Implementazioni: strutture dati riusabili che concretamente realizzano le

collezioni.

 Algoritmi: metodi riusabili che realizzano computazioni utili, ad es. la ricerca di

un elemento in una collezione, o l'ordinamento degli elementi di una collezione secondo

determinati criteri. Gli algoritmi sono polimorfici: possono essere usati su implementazioni

diverse di una stessa interfaccia.

121. Con riferimento al Java, si introducano le "collezioni"

Una collezione è semplicemente un oggetto che raggruppa più oggetti (detti elementi della

collezione) in una singola unità e sono usate per memorizzare, recuperare, manipolare e

comunicare dati aggregati. Tipicamente rappresentano dati che formano

naturalmente un gruppo, come ad esempio le coppie (nome, numero di

telefono) di un elenco telefonico.

Una collezione può essere ordinata o no e ammettere o meno elementi duplicati.

122. cosa è il tipo di dato astratto Mappa? A cosa serve?

Una Map (Mappa) rappresenta il tipo astratto che definisce una struttura dati in grado di

memorizzare elementi nella forma di coppie chiave-valore. Ogni elemento all’interno di

una mappa è identificato da una determinata chiave(che deve essere unica e può mappare

al massimo un valore), la chiave consente non solo di recuperare ed inserire un elemento

in una mappa, ma anche di definire un ordinamento per le implementazioni che prevedono

questa funzionalità.

LEZ 013

123. Descrivere a parole come avviene la ricerca in una lista

Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza

oppure l’elemento non è presente nella sequenza stessa. In generale una sequenza di

elementi si può realizzare come un array. E la scansione avviene usando un indice. Se la

sequenza non è ordinata a priori occorre eseguire una ricerca lineare o sequenziale. Se la

sequenza è ordinata è opportuno eseguire una ricerca binaria. L’algoritmo di ricerca lineare

(o sequenziale) in una sequenza (array) è basato sulla seguente strategia:

• Gli elementi dell’array vengono analizzati in sequenza, confrontandoli con

l’elemento da ricercare (chiave) per determinare se almeno uno degli elementi è uguale

alla chiave.

• Quando si trova un elemento uguale alla chiave la ricerca termina

La ricerca è sequenziale, nel senso che gli elementi dell’array vengono scanditi uno dopo

l’altro sequenzialmente. L’algoritmo prevede che al più tutti gli elementi dell’array vengano

confrontati con la chiave. Se l’elemento viene trovato prima di raggiungere la fine della

sequenza non sarà necessario proseguire la ricerca. L’algoritmo di ricerca lineare richiede

che al più tutti gli elementi dell’array vengano confrontati con la chiave. Questo è

necessario perché la sequenza non è ordinata. Se la sequenza su cui occorre effettuare la

ricerca è ordinata si può usare un algoritmo di ricerca molto più efficiente che cerca la

chiave sfruttando il fatto che gli elementi della sequenza sono già disposti in un dato

ordine. Esempi di sequenze ordinate: elenco telefonico, agenda, etc. In questi casi si usa un

algoritmo di ricerca binaria che è più efficiente perché riduce lo spazio di ricerca.

L’algoritmo di ricerca binaria cerca un elemento in una sequenza ordinata in maniera

crescente (o non decrescente) eseguendo i passi seguenti finché l’elemento viene trovato o

si è si è completata la ricerca senza trovarlo:

1. Confronta la chiave con l’elemento centrale della sequenza

2. Se la chiave è uguale all’elemento centrale, allora la ricerca termina positivamente

3. Se invece la chiave è maggiore dell’elemento centrale si effettua la ricerca solo sulla

sottosequenza a destra

4. Se invece la chiave è minore dell’elemento centrale dello spazio di ricerca, si effettua la

ricerca solo sulla sottosequenza a sinistra.

Per 3 o 4 si riparte dalla 1.

Se alla fine non si può più dividere la sottosequenza e non si è trovato ancora la chiave

allora il metodo terminerà comunque.

LEZ 014

124. cosa si intende per metodi generici in Java? Si faccia un esempio di utilizzo

I metodi generici sono metodi e costruttori che introducono i propri tipi parametrici. Tutto

è simile ai tipi parametrici definiti a livello di classe visti finora, con la differenza che

l'ambito di definizione del tipo parametrico (il suo scope) è limitato al metodo e non esteso

all'intera classe.

Un esempio della definizione di un metodo generico è il seguente:

class Util {

static <T> boolean confronta(Box<T> box1, Box<T> box2) {

T v1 = box1.get();

T v2 = box2.get();

return v1.equals(v2);

}

}

In cui T rappresenta il tipo del parametro e può corrispondere a qualunque tipo non

primitivo.

LEZ 016

125. quale è la clausola (parola chiave) per lanciare una eccezione in Java?

In Java per lanciare una eccezione viene utilizzata la clausola (parola chiave) throw

Quando in un metodo si verifica un errore, viene creato un oggetto (exception object) che

contiene informazioni sull'errore e sullo stato del programma.

L' exception object viene passato al run‐time system. Questo particolare meccanismo si

chiama thro

Dettagli
Publisher
A.A. 2025-2026
47 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher dominikks di informazioni apprese con la frequenza delle lezioni di Linguaggi di programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università telematica "e-Campus" di Novedrate (CO) o del prof Vecchio Massimo.