CENTRO STUDI ULISSE
Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA)
Tel. Fax. 081.19970299 - 339.2365416 - 349.4152010
E-mail: [email protected] - www.centrostudiulisse.it
OCA JAVA 7 SE PROGRAMMER I
DOCENTE: DOTT. FAUSTO DELL’ANNO
1
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
SOMMARIO








Fondamenti di Java
Usare i Data Type Java
Usare operatori e costrutti decisionali
Creare ed usare array
Usare i costrutti ciclici
Lavorare con i metodi e l’incapsulamento
L’ereditarietà
Eccezioni
2
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY




Concetto di array
Dichiarare, instanziare, inizializzare un array
monodimensionale
Dichiarare, instanziare, inizializzare un array
multidimensionale
Dichiarare ed usare un ArrayList
3
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Concetto di array

Sono OGGETTI

Possono contenere altri oggetti o tipi primitivi

Contengono valori costanti

Hanno operatori

Hanno costruttori

La lunghezza è nel campo length (NON È UN METODO!)
4
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Concetto di array

Accedere ad un elemento di un array
int[] ai = {1,2,3};
System.out.println(ai[1]);

Lunghezza di un array
System.out.println(ai.length);

//array di int
//stampa il secondo elemento dell’array
//(zero-based!)
//stampa la lunghezza dell’array
Eccezioni sollevate nell’uso di un array
ArrayIndexOutOfBoundsException
IndexOutOfBoundsException
NullPointerException
5
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Concetto di array

Array null: rischio di Null PointerException
int[] ai = null;

Array di elementi null
Integer[] ai = {null, null, null};

Array di lunghezza zero: rischio di ArrayIndexOutOfBoundsException
int[] ai = new int[0];

Array monodimensionali
int[] ai1 = new int[3];
int[] ai2 = new int[6];

Array multidimensionali
int[][] ai = new int[3][4];
6
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY


Dichiarare, instanziare, inizializzare un array
monodimensionale
Dichiarazione di un array monodimensionale
int[] ai;
int ai[];

//valida
//valida
Instanziare e dimensionare un array monodimensionale
int[] ai = new int[10];

Tutti gli elementi di un array di primitivi sono
automaticamente inizializzati ai valori di default
7
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY


Dichiarare, instanziare, inizializzare un array
monodimensionale
Inizializzare un array monodimensionale con un elenco
int[] ai3 = {1, 2, 3};
String[] as3 = {«1», «2», «3»};
String[] as3 = new String[]{«1», «2», «3»};
String[] as3 = new String[3]{«1», «2», «3»};

//Non valido!!!
Inizializzare un array monodimensionale con un ciclo
int[] ai3 = new int[3];
int i = 0;
while (i < 3)
ai3[i] = 2*i++;
8
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY


Dichiarare, instanziare, inizializzare un array
multidimensionale
Dichiarazione di un array multidimensionale
int[][] ai;
int ai[][];
int[] ai[];
//valida
//valida
//valida
int[3][] ai3 = { { 1, 2, 3} , { 4, 5, 6, 7}, { 8, 9, 10 } };
//ai3 è un array di tre elementi di cui ognuno è un array
9
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Dichiarare, instanziare, inizializzare un array
multidimensionale



In un’espressione di creazione di un array multidimensionale ci può
essere un’espressione per ogni dimensione, ognuna in parentesi
Le dimensioni vengono calcolate a partire da sinistra e continuando
verso destra
In caso di errore tutto ciò che viene dopo non viene calcolato
int i = 4;
int ia[][][] = new int[i][i = 3][i];
System.out.println( ia.length + ", " + ia[0].length+", "+ ia[0][0].length);
//Stamperà 4, 3, 3
10
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Dichiarare ed usare un ArrayList

Proprietà dell’ArrayList
 Ridimensionato
dinamicamente a runtime
 Consuma un po’ più di memoria rispetto ad un array per
mantenere la struttura interna
 Come un array, non è thread safe
 Consente un accesso in tempo costante a tutti i suoi elementi
 Fornisce un accesso random ai suoi elementi (senza
conoscerne l’ordine)
 Al di sotto c’è un array
11
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Dichiarare ed usare un ArrayList

ArrayList è una sottoclasse di AbstractList

Interfacce implementate:
java.lang.Object
- java.util.AbstractCollection<E>
- java.util.AbstractList<E>
java.util.ArrayList<E>







Serializable
Cloneable
Iterable<E>
Collection<E>
List<E>
RandomAccess
Sottoclassi dirette:



AttributeList
RoleList
RoleUnresolvedList
12
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Dichiarare ed usare un ArrayList

Metodi dell’Arraylist














add
addAll
clear
contains
ensureCapacity
get
indexOf
isEmpty
iterator
remove
removeAll
set
size
toArray
13
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Dichiarare ed usare un ArrayList

Dichiarazione di un ArrayList
È facoltativo dichiarare il tipo di dato contenuto
 Non farlo significa evitare un controllo a compile time

ArrayList<String> listOfStrings; //corretto
ArrayList listOfStrings;
//corretto
14
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
CREARE ED USARE ARRAY

Dichiarare ed usare un ArrayList

Uso di un ArrayList
 Non
è possibile mettere tipi primitivi in un ArrayList, ma solo
oggetti
 È possibile ordinare i suoi elementi usando il metodo
Collections.sort()

Eccezioni sollevate nell’uso di un ArrayList
IndexOutOfBoundsException
 NullPointerException

15
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata
DOMANDE?
16
Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata