Questa breve lezione ti mostra come lavorare con gli array in Java. Questa lezione fa parte di una serie continua di tutorial per gli sviluppatori che stanno imparando Java per sviluppare applicazioni Android.
Una matrice è una struttura di dati comune utilizzata per memorizzare un elenco ordinato di elementi. Gli elementi dell'array sono stati digitati. Ad esempio, puoi creare una serie di caratteri per rappresentare le vocali nell'alfabeto:
char aVowels [] = 'a', 'e', 'i', 'o', 'u';
Proprio come C o C ++, gli array Java sono indicizzati numericamente su un sistema basato su 0. Ciò significa che il primo elemento dell'array (ovvero 'a') è all'indice 0, il secondo ('e') è all'indice 1 e così via.
Java semplifica il lavoro con gli array rispetto a molti altri linguaggi di programmazione. L'array stesso è un oggetto (di tipo array), con tutti i suoi vantaggi. Ad esempio, puoi sempre controllare la dimensione di un array usando la sua proprietà length:
int length = aVowels.length;
È possibile memorizzare qualsiasi oggetto o tipo primitivo in una matrice. Ad esempio, è possibile memorizzare numeri interi in un array:
int aNums [] = 2, 4, 6;
Oppure puoi memorizzare tipi non primitivi come le stringhe (o qualsiasi altra classe) in un array:
String aStooges [] = "Larry", "Moe", "Riccio";
A volte, potresti voler memorizzare oggetti di tipi diversi in un array. È sempre possibile sfruttare l'ereditarietà e utilizzare una classe genitore per il tipo di matrice. Ad esempio, la classe Object è la madre di tutte le classi ... quindi potresti memorizzare diversi tipi in un singolo array come questo:
float one = 1.0f; Numero intero due = nuovo numero intero (2); String three = "three"; Object aObjects [] = uno, due, tre;
Gli elementi di un array di oggetti Java sono riferimenti (o handle) agli oggetti, non istanze reali di oggetti. Un valore di elemento è nullo fino a quando non viene assegnata un'istanza valida di un oggetto (ovvero, la matrice viene inizializzata automaticamente ma si è responsabili dell'assegnazione dei relativi valori).
Esistono diversi modi per dichiarare un array in Java. Come hai visto, puoi dichiarare una matrice e fornire immediatamente i suoi elementi usando la sintassi della parentesi graffa in stile C. Ad esempio, il seguente codice Java dichiara una matrice di numeri interi di lunghezza 3 e inizializza l'array in un'unica riga:
int aNums [] = 2, 4, 6;
Puoi anche dichiarare un array di una dimensione specifica e quindi assegnare il valore di ogni elemento singolarmente, in questo modo:
double aPowersOfTwo [] = new double [5]; aPowersOfTwo [0] = Math.pow (2,0); aPowersOfTwo [1] = Math.pow (2,1); aPowersOfTwo [2] = Math.pow (2,2); aPowersOfTwo [3] = Math.pow (2,3); aPowersOfTwo [4] = Math.pow (2,4);
Questo è equivalente alla creazione di un array come questo:
double aPowersOfTwoExplicit [] = 1.0d, 2.0d, 4.0d, 8.0d, 16.0d;
Ci sono molti altri modi per creare array. Ad esempio, è possibile creare la variabile di matrice e assegnarla separatamente utilizzando la nuova parola chiave. Puoi anche mettere le parentesi dell'array prima del nome della variabile, se lo desideri (questo è un problema di stile). Ad esempio, il seguente codice Java definisce una matrice di elementi String e quindi li assegna singolarmente:
String [] aStopLightColors; aStopLightColors = new String [3]; aStopLightColors [0] = new String ("red"); aStopLightColors [1] = new String ("yellow"); aStopLightColors [2] = new String ("green");
Come hai visto, puoi assegnare valori di array usando la sintassi della parentesi:
È anche possibile recuperare i valori dell'array per indice. Ad esempio, è possibile accedere al secondo elemento dell'array chiamato aStopLightColors (definito nella sezione precedente) come segue:
String strCurrentLightColor = aStopLightColors [1];
Infine, gli array sono spesso usati come una lista ordinata di oggetti. Pertanto, è possibile che si desideri eseguire un'iterazione nell'array in ordine, accedendo a ogni elemento in modo metodico.
Ci sono diversi modi per farlo in Java. Poiché è sempre possibile controllare la dimensione di un array a livello di codice, è possibile utilizzare uno qualsiasi dei metodi tipici per ciclo o while che è possibile trovare familiari. Ad esempio, il seguente codice Java dichiara un array di numeri interi semplice di tre numeri e utilizza un semplice ciclo per scorrere tra gli elementi:
int aNums [] = 2, 4, 6; per (int i = 0; i < aNums.length; i++) String strToPrint = "aNums[" + i + "]=" + aNums[i];
Java fornisce anche un ciclo per ogni ciclo utile per iterare attraverso gli array in modo amichevole. Il ciclo for-each consente di evitare errori di programmazione insulsi così comuni nei loop (errori off-by-one, ecc.). Per utilizzare la sintassi del ciclo for-each, è necessario definire la variabile del ciclo, quindi inserire i due punti e quindi specificare il nome dell'array. Ad esempio, il codice seguente fornisce la struttura del ciclo simile al ciclo precedente mostrato sopra:
for (int num: aNums) String strToPrint = num;
Come puoi vedere, il ciclo for-each è fluido. Tuttavia, non si conosce più l'indice durante l'iterazione. Pertanto, non può essere utilizzato in tutte le situazioni.
In questa breve lezione hai imparato a conoscere gli array in Java. Gli array sono una struttura di dati fondamentale utilizzata per la programmazione Java che memorizza un numero ordinato di oggetti di un determinato tipo in modo organizzato. In Java, gli array sono oggetti stessi e memorizzano riferimenti agli oggetti, rendendo l'assegnazione e l'uso più semplici (ma sottilmente diversi) rispetto a come gli array vengono impiegati in altri linguaggi di programmazione.
Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams TeachYourself Sviluppo di applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.