Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Strutture dati Statiche e Dinamiche in Java: Array List e Collection, Dispense di Informatica

Scopri cosa sono, come si creano e come si utilizzano le Strutture Dati in Java: Array List e Collection

Tipologia: Dispense

2023/2024

In vendita dal 11/09/2024

davide-rizzari
davide-rizzari 🇮🇹

10 documenti

1 / 11

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
STRUTTURE DI DATI:STATICHE E DINAMICHE
STRUTTURA DATI (definizione generale): un INSIEME DI
DATI (AGGREGATO) di DATI (elementari/primitivi o strutturati
a loro volta [oggetti di classi]) costituiti da dati più semplici)
opportunamente relazionati tra loro (Esempio: i voti degli
studenti di una classe, l’elenco dei dipendenti di una azienda)
In molti casi si ha l’esigenza di rappresentare e trattare
“collettivamente” un insieme di dati (semplici o
strutturati)
• Gli array e le collection hanno questo scopo
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Strutture dati Statiche e Dinamiche in Java: Array List e Collection e più Dispense in PDF di Informatica solo su Docsity!

STRUTTURE DI DATI:STATICHE E DINAMICHE

  • STRUTTURA DATI ( definizione generale): un INSIEME DI

DATI (AGGREGATO) di DATI (elementari/primitivi o strutturati

a loro volta [oggetti di classi]) costituiti da dati più semplici)

opportunamente relazionati tra loro (Esempio: i voti degli

studenti di una classe, l’elenco dei dipendenti di una azienda)

  • In molti casi si ha l’esigenza di rappresentare e trattare

“collettivamente” un insieme di dati (semplici o

strutturati)

  • Gli array e le collection hanno questo scopo

Collection

• Gli array sono adatti solo ai casi in cui la struttura dati

“collettiva” non debba variare dinamicamente la sua

dimensione ( STRUTTURE STATICHE )

• Infatti la dimensione di un array viene fissata al

momento della sua creazione e non può essere

modificata

• Le Collection sono strutture dati, introdotte in Java 6,

che rappresentano appunto delle collezioni (insiemi di

oggetti) DINAMICHE : l’allocazione (dimensione) può

cambiare durante l’esecuzione (a run-time) in funzione

dell’evolvere delle richieste dell’utente (inserimento,

eliminazione di componenti/elementi)

ArrayList

Le strutture dati dinamiche in java (dalla 1. 5 in poi, ovvero nelle più recenti jdk) sono implementate con le classi Vector (deprecata/obsoleta), ArrayList , LinkedList che derivano dalla superclasse List, a sua volta derivata da Collection. Vector

  • Vector è una implementazione di List ormai obsoleta (deprecata) (risale al jdk 1. 0 ), superata, per efficienza di implementazione, dalla classe ArrayList
  • La classe ArrayList è inclusa nel package java.util; attraverso ArrayList si definiscono degli oggetti, chiamati array (vettori) dinamici , che consentono di rappresentare sequenze di oggetti di lunghezza variabile.
  • I vettori dinamici sono simili agli array. Le differenze principali sono:
    • la dimensione di un vettore può variare durante l'esecuzione di un

programma;

  • Gli elementi contenuti sono di tipo Object o derivati (non sono

elementi di tipo primitivo/elementare)

ArrayList

Il contenuto

  • Un ArrayList può contenere elementi/oggetti discendenti direttamente da

Object (in questo caso si parla di ArrayList con elementi “raw type” [tipo

grezzo]) , ovvero qualunque oggetto Java.

  • Ovvero possiamo memorizzare oggetti di classi completamente scorrelate

(come String, Integer, altri oggetti oggettiPersona, ecc) nella stessa istanza

di ArrayLIst.

Esempi ArrayList

ArrayList con la definizione/esplicitazione del tipo (2):

Esempio 1:

//definizione di ArrayList con oggetti String

ArrayList list = new ArrayList();

// Adding items to Vector

list.add("Item1");

List.add(100);

list.add("Item2");

// it will add Item3 to the third position of array list

list.add(2, "Item3");

list.add("Item4");

Esempi ArrayList (dichiazione esplicita del tipo degli elementi)

  • Esempio 2: import java.util.ArrayList; public class StrutturaLibreria { ArrayList libreria; String nome; public StrutturaLibreria(String nome) { this .nome=nome; libreria= new ArrayList (); } public void inserisciLibro(Libro l) { libreria.add(l); } ……. }

Elenco dei metodi più utilizzati: int size() Restituisce il numero di elementi contenuti:

  • Object get(int index) Restituisce l'elemento di indice index
  • Object set(int index, Object obj) Sostituisce obj all'oggetto di posizione index (viene tornato il vecchio elemento in posizione index)
  • void add (int index, Object obj) Inserisce obj nella posizione index e sposta tutti gli elementi, da index in poi, di una posizione
  • boolean add (Object obj) Aggiunge obj dopo l'ultimo elemento (restituisce true):
  • Object remove(int index) Rimuove l'oggetto presente nella posizione index e sposta all'indietro di una posizione tutti gli elementi successivi a quello rimosso. Throws IndexOutOfBoundsException if index out of range (index < 0 || index >= size()) : lancia eccezione IndexOutOfBounds se l’index “ è fuori range”. L’oggetto rimosso viene ritornato.
  • boolean remove (Object obj) Rimuove l'oggetto obj se presente restituendo true, oppure restituisce false:
  • int indexOf (Object elem) Restituisce la prima posizione dell'oggetto 'elem' nel vettore, - 1 se non esiste: ELENCO DEI METODI PIÙ UTILIZZATI:

Chiarimenti su indexOf, lastIndexOf e contains:

  • Sono i metodi di ArrayList attraverso cui è possibile effettuare delle

ricerche.

  • boolean contains(Object o)

Returns true if this list contains the specified element. More formally,

returns true if and only if this list contains at least one element “e” such

that o.equals(e))

  • Quindi contains sfrutta equals, verifica se qualche elemento “e” della lista

(che indichiamo genericamente e) risulta uguale (equals) ad “o”.

  • La stessa cosa avviene con indexOf e lastIndexOf.

ELENCO DEI METODI PIÙ UTILIZZATI: