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


array list informatica di base, Dispense di Elementi di Informatica

array list informatica dispense professore

Tipologia: Dispense

2018/2019

Caricato il 06/10/2019

matteo991
matteo991 🇮🇹

4.1

(16)

27 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Fondamenti di Informatica L-B 1
Esempio su strutture dati dinamiche:
ArrayList
Fondamenti di Informatica L-B 2
ArrayList
Abbiamo detto che gli array non possono cambiare
la propria dimensione: il numero di elementi
contenuti viene stabilito al momento della creazione
e rimane immutato
Per superare questa limitazione Java mette a
disposizione la classe ArrayList, contenuta nel
package java.util che permette di rappresentare
sequenze di oggetti di lunghezza variabile.
Ciascun oggetto in un’istanza di ArrayList viene
identificato da un numero intero, detto indice, che ne
indica la posizione.
L'accesso ad una posizione inesistente provoca un
errore (viene lanciata un'eccezione).
pf3
pf4
pf5

Anteprima parziale del testo

Scarica array list informatica di base e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Fondamenti di Informatica L-B 1

Esempio su strutture dati dinamiche: ArrayList

ArrayList

 Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato  Per superare questa limitazione Java mette a disposizione la classe ArrayList, contenuta nel package java.util che permette di rappresentare sequenze di oggetti di lunghezza variabile.  Ciascun oggetto in un’istanza di ArrayList viene identificato da un numero intero, detto indice, che ne indica la posizione.  L'accesso ad una posizione inesistente provoca un errore (viene lanciata un'eccezione).

Fondamenti di Informatica L-B 3

ArrayList e array

 L’ArrayList è quindi simile ad un array.

 Le differenze principali sono due:

 La dimensione può variare durante l'esecuzione di un programma  Gli elementi contenuti sono di un solo tipo: Object.

 ArrayList è una classe come tutte le altre, non ha alcuna sintassi particolare

Il contenuto

 Come abbiamo detto le istanze di ArrayList possono contenere solo istanze della classe Object.

 Questo vincolo è meno restrittiva di quanto sembrerebbe: in virtù del subtyping possiamo infatti mettere in un ArrayList istanze qualunque discendente di Object, ovvero qualunque oggetto Java

 Possiamo memorizzare oggetti di classi completamente scorrelate (come String, Rectangle, Persona) nella stessa istanza di ArrayLIst

 Quando li estraiamo dobbiamo però usare un downcast per passare dal tipo Object al tipo voluto

Fondamenti di Informatica L-B 7

Elenco dei metodi - 1

 Restituisce il numero di elementi contenuti:

int size()

 Restituisce l'elemento di indice index:

Object get(int index)

 Sostituisce obj all'oggetto di posizione index:

Object set(int index, Object obj)

 Inserisce obj nella posizione index e sposta tutti gli elementi, da index in poi, di una posizione: void add (int index, Object obj)

 Aggiunge obj dopo l'ultimo elemento (restituisce true):

boolean add (Object obj)

Elenco dei metodi - 2

 Rimuove l'oggetto presente nella posizione index e sposta all'indietro di una posizione tutti gli elementi successivi a quello rimosso: void remove (int index)

 Rimuove l'oggetto obj se presente restituendo true, oppure restituisce false: boolean remove (Object obj)

 Restituisce la prima posizione dell'oggetto 'elem' nel vettore, -1 se non esiste: int indexOf (Object elem)

 Restituisce una stringa "[el1, el2,… eln]“: String toString ()

Fondamenti di Informatica L-B 9

Esempio

import java.util.ArrayList;

public class EsempioArrayList { public static void main(String[] args) { ArrayList v = new ArrayList (3); System.out.println("n.elementi di v: "+v.size()); v.add("aaa"); v.add("bbb"); v.add("ddd"); v.add("eee"); v.add(2,"ccc"); System.out.println("n. elementi di v: "+v.size()); for (int i=0; i<v.size(); i++) System.out.println("elemento "+ i+": "+v.get(i)); System.out.println("primo: "+v.get(0)); System.out.println("ultimo: "+v.get(v.size()-1)); String s = (String)v.get(0); // Serve un downcast è } }

Memorizzare dati di tipi primitivi in ArrayList

 I tipi primitivi in Java non sono oggetti, quindi non è possibile inserirli direttamente in un vettore.

 Per memorizzare sequenze di numeri interi, numeri in virgola mobile, o valori di tipo boolean in un vettore, si devono usare le classi wrapper.

ArrayList dati = new ArrayList();

int n = 30; Integer numero = new Integer(n); dati.add(numero);

Integer numero = (Integer)dati.get(0); int n = numero.intValue();