Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni4 pagine

INFO - Strutture Dati

Il documento descrive vari tipi di strutture dati in Java, tra cui LIST, SET e le loro implementazioni come ArrayList, LinkedList, HashSet e HashMap. Viene fornita una panoramica dei metodi associati a queste strutture, inclusi metodi per l'aggiunta, la rimozione e la ricerca di elementi. Inoltre, il documento affronta la lettura da file e la serializzazione/deserializzazione degli oggetti in Java.

Caricato da

Nicolò Niero
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni4 pagine

INFO - Strutture Dati

Il documento descrive vari tipi di strutture dati in Java, tra cui LIST, SET e le loro implementazioni come ArrayList, LinkedList, HashSet e HashMap. Viene fornita una panoramica dei metodi associati a queste strutture, inclusi metodi per l'aggiunta, la rimozione e la ricerca di elementi. Inoltre, il documento affronta la lettura da file e la serializzazione/deserializzazione degli oggetti in Java.

Caricato da

Nicolò Niero
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 4

Informatica

STRUTTURE DATI

30 marzo 2023
Tipi di strutture dati e quando usarle
La libreria standard di Java fornisce una serie di classi che consentono di lavorare con
gruppi di oggetti (COLLEZIONI), divise in

1. LIST: ammette elementi duplicati e ha una nozione di posizione


a. ArrayList → Array dinamico
b. LinkedList → Liste concatenate, specialmente per inserire elementi (anche
duplicati) all’interno di liste. inserimento e ricerca necessitano lo scorrimento
della lista (Uso Iterator per scorrerlo)
c. Vector → Array dinamico
2. SET
● HashSet → per elementi univoci. FAcile inserimento, ricerca e cancellazione
● TreeSet → ordinamento per elementi univoci
● HashMap → può avere elementi uguali, ma non chiavi. Accesso diretto alla
posizione giusta dell’array tramite una chiave (senza scorrere tutto il set)
● TreeMap → può avere elementi uguali, ma non le chiavi; messi in ordine

List<>
Metodi
- add(E e): aggiunge elemento alla fine dell’elenco
- add(int index, E e): inserisce nella posizione specifica dell’elenco
- clear(): rimuove tutti gli elementi
- contains(Object o): restituisce true se l’elemento esiste
- equals(Object o): confrontare l’oggetto con quello dell’elenco specificato
- get(int index): restituisce l’elemento all’indirizzo specificato
- indexOf(Object o): restituisce l’indice dell’elemento specificato
- isEmpty(): TRUE se l’elenco è vuoto
- iterator(): restituisce l’iteratore sugli elementi in questo elenco
- remove(Object o): rimuove l’oggetto specificato
- remove(int index ) : rimuove l’oggetto nella posizione specificata
- size()

1
- toArray(): restituisce un array contenente tutti gli elementi di questo elenco nella
sequenza corretta
- toArray(T[] a): restituisce un array contenente tutti gli elementi di questo elenco nella
sequenza corretta; il tipo dell’array restituito è quello specificato

LinkedList<>
è l’implementazione di List<>
Metodi in più rispetto a List<>
- clone(): consente di ricevere una copia dell’elemento
- getFirst(): ritorna il primo elemento della lista
- getLast(): ritorna l’ultimo elemento della lista
- offerLast(E e): inserisce l’elemento nell’ultima posizione nella lista
- offerFirst(E e): inserisce l’elemento nella prima posizione della lista
- peek(): restituisce il primo elemento della lista
- removeLast(): rimuove e ritorna l’ultimo elemento della lista
-

Iteratore
oggetto di supporto per accedere agli elementi di una collezione, uno alla volta e in
sequenza. Consente di eliminare elementi mentre lo si scorre e di bloccarne la scansione

Un oggetto che rende disponibili metodi per accedere sequenzialmente ai singoli elementi
dell’oggetto aggregato senza esporne la rappresentazione interna.

il metodo iterator() restituisce un iteratore per la collezione

Metodi

● next() << restituisce il prossimo elemento della collezione e sposta il cursore


dell’iteratore all’elemento successivo
● hasnext() << TRUE se è presente un elemento successivo
● remove() << cancella l’elemento restituito da next()
implementazione
Iterator <T> it = c.iterator();
while(it.hasNext()){
T e = it.next();
}

alternativa (for each)

esempio con hashmap


for(Map.Entry<> new.map : map.entrySet()){

2
}
esempio con parametri
for(String codice: map.values()){}
HASHMAP
- clear()
- add(T e)
- contains(Object e )
- isEmpty()
- clone()
- entrySet(): ritorna una “vista” di raccolta delle mappature contenute in una mappa
- keySet(): ritorna una vista di set delle chiavi contenute in questa mappa
- put(Object key, Object value): per inserire un elemento nella mappa
- putifAbsent(Object key, Object value): per inserire un elemento nella mappa solo
se non presente
- remove()
- containsValue(Object value): se esiste il value specificato
- containskey(Object key)
- equals()
- get(Object key): ritorna l’elemento associato alla chiave specificata
- isEmpty()
- replace(Object key, object value ): sostituisce il valore con quello nella chiave
specificata
- toArray(): esporta gli elementi della collezione in un array di elementi di tipo Object
- toArray(T a[]): esporta gli elementi dalla collezione in un array di tipo T
- values(): ritorna la vista di collezione dei values nella mappa
- size()

contiene metodi utili per l’elaborazione di collezioni di qualunque tipo: per ordinare, calcolo
massimo e minimo, contronto…

lettura da file
try (BufferedReader br = new BufferedReader(new FileReader(file))) {

while ((s = br.readLine()) != null) {

String[] data =s.split(";");

Nazioni n = new Nazioni(data[0], data[1], Integer.parseInt(data[2]));

mappa.put(data[0],n );

} catch (IOException e) {

3
e.printStackTrace();

Serializzazione
try (ObjectOutputStream os = new ObjectOutputStream(new
FileOutputStream("NazioniCapitali.ser"));) {

os.writeObject(mappa);

} catch (Exception e) {

e.printStackTrace();

Deserializzazione
mappaSer = new HashMap<String, Nazioni>();

try {

ObjectInputStream is = new ObjectInputStream(new


FileInputStream("NazioniCapitali.ser"));

mappaSer = (Map<String, Nazioni>)is.readObject();

is.close();

} catch (Exception e) {

e.printStackTrace();

Potrebbero piacerti anche