PDA

View Full Version : [Java] Domandina sugli array


D4rkAng3l
07-01-2009, 20:36
Ciao,
stavo sistemando gli appunti di lezione (tra un po' esame :cry: ) e....veniamo al sodo...

Per creare, inizializzare e stampare un array posso fare:


int[] array1 = new int[5];

array1[0] = 10;
array1[1] = 2;
array1[2] = 4;
array1[3] = 7;
array1[4] = 18;

for(i=0; i<array1.length; i++)
System.out.println(array1[i]);


(nella classe che contiene il metodo main)

La variabile length è una variabile di istanza di ogni oggetto array che contiene il numero degli elementi di quell'array ed in questo caso l'ho usata appunto per scorrere l'array...

Sui miei appunti (presi un po' di tempo fà in maniera caotica) si parla anche di un fantomatico metodo length()
che sarebbe?!?! quando si usa?!?! a che serve?!?! :eek:

Grazie
Andrea

wizard1993
07-01-2009, 21:37
non esiste un metodo lenght nella classe array; esiste la variabile membro con tale nome, esiste un metodo size() nelle Classi della JFC; ma nulla più

Don[ITA]
07-01-2009, 22:45
In realtà un metodo length() esiste ma appartiene alla classe String :)
Se consideriamo una stringa come un array di caratteri allora il metodo length() ne restituisce la lunghezza, proprio come la variabile length di un array.

Saluti

D4rkAng3l
07-01-2009, 23:27
;25742118']In realtà un metodo length() esiste ma appartiene alla classe String :)
Se consideriamo una stringa come un array di caratteri allora il metodo length() ne restituisce la lunghezza, proprio come la variabile length di un array.

Saluti

Ah...ora mi pare di ricordare la storia circa le stringhe...devo ancora vedermela bene la parte sulle stringhe...domani provvedo... :cry:

clockover
07-01-2009, 23:29
Un metodo più veloce per creare un array potrebbe essere questo

int a[] = {10, 2, 4, 7, 8, 18};

banryu79
08-01-2009, 08:51
Per sicurezza ricordati anche di guardare le differenze che ci sono tra array di tipi primitivi e array di oggetti.

legolas93
08-01-2009, 09:07
Stampare un array in quella maniera non è proprio elegante....

utilizza il "ciclo for migliorato"

for (int tmp : array1){
System.out.println(tmp);
}


a me sembra meglio...Ciauz

D4rkAng3l
08-01-2009, 12:07
Per sicurezza ricordati anche di guardare le differenze che ci sono tra array di tipi primitivi e array di oggetti.

mmm che differenze ci sono?

A primo acchitto ti direi semplicemente che:

Se ho un array A di interi (o di quasliasi altro tipo primitivo) in memoria succede questo:

Nello stack ho una variabile A di tipo riferimento che punta alla prima locazione dell'array nello heap e dentro ogni locazione c'è l'elemento primitivo.

Mentre se ho un array B di oggetti non primitivi in memoria ho:

nello stack la variabile B di tipo riferimento che punta alla prima locazione dell'array nello heap ed ogni locazione dell'array contiene un riferimento ad un oggetto nello heap che a sua volta punta alla propria classe.

Ho capito bene come funziona o mi sfugge qualcosa?

Grazie
Andrea