class NoArray { public static void main(String[] args) { int variabile1=41; int variabile2=74; int variabile3=7; .... variabile1=variabile1+1; System.out.println(variabile1); variabile2=variabile2+1; System.out.println(variabile2); variabile3=variabile3+1; ... } }Questo genere di operazioni si semplificano raggruppando tutte le variabili di un certo tipo in un unico vettore. La dichiarazione di un vettore che contiene 100 elementi di tipo intero è:
int x[]=new int[100];Si può pensare a questa operazione come equivalente a dichiarare le seguenti variabili, tutte di tipo intero: x[0], x[1], x[2],...., x[99]. Si noti che il primo elemento è 0, mentre l'ultimo è 99. Questo può creare confusione, dal momento che nella dichiarazione appare il numero 100.
Il punto fondamentale è che queste variabili x[0],... si possono usare come variabili normali, ma in più è possibile anche fare riferimenti per esempio a x[i] dove i è un'altra variabile. Per esempio, la sequenza di istruzioni
i=10; System.out.println(x[i]);stampa il contenuto della variabile x[10]. In generale, la notazione x[espressione] è la componente del vettore determinata dalla valutazione della espressione. Se per esempio i=10 allora x[i+4] è esattamente lo stesso di x[14]. Questo rende i vettori molto comodi quando ci sono operazioni che vanno ripetute su un insieme di variabili. Per esempio, l'incremento e stampa dei cento valori si può fare definendo e assegnando valori a un vettore di interi x, e poi effettuando un ciclo:
int i; for(i=0; i<=99; i=i+1) { x[i]=x[i]+1; System.out.println(x[i]); }La assegnazione agli elementi di un vettore si può semplificare. Invece di fare x[0]=41; x[1]=74; ..., si possono dare tutti i valori nella fase di dichiarazione. Il programma completo ConArray.java è il seguente.
class ConArray { public static void main(String[] args) { int x[]={41, 74, 7, 40, 73, 6, 39, 72, 5, 38, 71, 4, 37, 70, 3, 36, 69, 2, 35, 68, 1, 34, 67, 0, 33, 66, 99, 32, 65, 98, 31, 64, 97, 30, 63, 96, 29, 62, 95, 28, 61, 94, 27, 60, 93, 26, 59, 92, 25, 58, 91, 24, 57, 90, 23, 56, 89, 22, 55, 88, 21, 54, 87, 20, 53, 86, 19, 52, 85, 18, 51, 84, 17, 50, 83, 16, 49, 82, 15, 48, 81, 14, 47, 80, 13, 46, 79, 12, 45, 78, 11, 44, 77, 10, 43, 76, 9, 42, 75, 8, 41 }; int i; for(i=0; i<=99; i=i+1) { x[i]=x[i]+1; System.out.println(x[i]); } } }
Per concludere, va notato come l'indice di un vettore (quello che sta fra parentesi quadre) può essere una espressione qualsiasi purchè dia un risultato di tipo intero, oltre che compreso fra 0 e il massimo elemento del vettore. Esemi di riferimenti che non funzionano sono: