Lernen Sie Java für die Android-Entwicklung Arbeiten mit Arrays

Diese kurze Lektion zeigt Ihnen, wie Sie mit Arrays in Java arbeiten. Diese Lektion ist Teil einer laufenden Reihe von Tutorials für Entwickler, die Java lernen, um Android-Anwendungen zu entwickeln.

Was ist ein Array??

Ein Array ist eine allgemeine Datenstruktur, die zum Speichern einer geordneten Liste von Elementen verwendet wird. Die Array-Elemente werden eingegeben. Sie können beispielsweise ein Array von Zeichen erstellen, um die Vokale im Alphabet darzustellen:

char aVowels [] = 'a', 'e', ​​'i', 'o', 'u'; 

Ähnlich wie C oder C ++ werden Java-Arrays auf einem 0-basierten System numerisch indiziert. Das heißt, das erste Element im Array (dh 'a') befindet sich am Index 0, das zweite Element ('e') am Index 1 und so weiter.

Java macht das Arbeiten mit Arrays einfacher als viele andere Programmiersprachen. Das Array selbst ist ein Objekt (vom Typ Array) mit allen Vorteilen davon. Zum Beispiel können Sie die Größe eines Arrays immer anhand der length-Eigenschaft überprüfen:

int length = aVowels.length; 

Was kann ich in einem Array speichern??

Sie können beliebige Objekt- oder Primitivtypen in einem Array speichern. Sie können beispielsweise ganze Zahlen in einem Array speichern:

int aNums [] = 2, 4, 6; 

Oder Sie können nicht-primitive Typen wie Strings (oder andere Klassen) in einem Array speichern:

String aStooges [] = "Larry", "Moe", "Curly"; 

Manchmal möchten Sie möglicherweise Objekte verschiedener Typen in einem Array speichern. Sie können immer die Vererbung nutzen und für den Array-Typ eine übergeordnete Klasse verwenden. Beispielsweise ist die Object-Klasse die Mutter aller Klassen. Sie können also verschiedene Typen in einem einzigen Array wie folgt speichern:

Float One = 1,0f; Ganzzahl zwei = neue Ganzzahl (2); String drei = "drei"; Objekt aObjects [] = eins, zwei, drei; 

Die Elemente eines Java-Objektarrays sind Referenzen (oder Handles) auf Objekte, keine tatsächlichen Objektinstanzen. Ein Elementwert ist null, bis ihm eine gültige Instanz eines Objekts zugewiesen wird (dh das Array wird automatisch initialisiert, Sie sind jedoch für die Zuweisung der Werte verantwortlich)..

Arrays deklarieren

Es gibt verschiedene Möglichkeiten, ein Array in Java zu deklarieren. Wie Sie gesehen haben, können Sie ein Array deklarieren und seine Elemente sofort mit der C-Stil-Syntax für geschweifte Klammern bereitstellen. Der folgende Java-Code deklariert beispielsweise ein Array von Ganzzahlen der Länge 3 und initialisiert das Array in einer Zeile:

int aNums [] = 2, 4, 6; 

Sie können auch ein Array mit einer bestimmten Größe deklarieren und dann den Wert jedes Elements einzeln zuweisen, wie folgt:

double aPowersOfTwo [] = neues 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); 

Dies entspricht dem Erstellen eines Arrays wie folgt:

double aPowersOfTwoExplicit [] = 1.0d, 2.0d, 4.0d, 8.0d, 16.0d; 

Es gibt verschiedene Möglichkeiten, Arrays zu erstellen. Sie können beispielsweise die Array-Variable erstellen und sie mit dem neuen Schlüsselwort separat zuweisen. Sie können die Array-Klammern auch vor den Variablennamen setzen, wenn Sie möchten (dies ist ein Stilproblem). Der folgende Java-Code definiert beispielsweise ein Array von String-Elementen und weist sie dann einzeln zu:

String [] aStopLightColors; aStopLightColors = neuer String [3]; aStopLightColors [0] = neuer String ("rot"); aStopLightColors [1] = neuer String ("gelb"); aStopLightColors [2] = neuer String ("grün"); 

Array-Inhalt ändern

Wie Sie gesehen haben, können Sie Array-Werte mithilfe der Klammer-Syntax zuweisen:

Sie können auch Array-Werte über den Index abrufen. Sie können beispielsweise auf das zweite Element im Array mit dem Namen aStopLightColors (im vorherigen Abschnitt definiert) wie folgt zugreifen:

String strCurrentLightColor = aStopLightColors [1]; 

Arrays iterieren

Schließlich werden Arrays häufig als geordnete Liste von Objekten verwendet. Daher stellen Sie möglicherweise fest, dass Sie das Array in der gewünschten Reihenfolge durchlaufen möchten, indem Sie auf jedes Element methodisch zugreifen.

Es gibt verschiedene Möglichkeiten, dies in Java zu tun. Da Sie die Größe eines Arrays immer programmgesteuert überprüfen können, können Sie alle typischen Schleifenmethoden verwenden, die Ihnen bekannt vorkommen. Der folgende Java-Code deklariert beispielsweise ein einfaches Integer-Array mit drei Zahlen und verwendet eine einfache for-Schleife, um die Elemente zu durchlaufen:

int aNums [] = 2, 4, 6; für (int i = 0; i < aNums.length; i++)  String strToPrint = "aNums[" + i + "]=" + aNums[i];  

Java bietet auch eine sehr praktische Schleife für jede Schleife, um Arrays auf freundliche Weise zu durchlaufen. Die for-each-Schleife hilft, dumme Programmierfehler zu vermeiden, die in Schleifen häufig vorkommen (Off-by-One-Fehler usw.). Um die for-each-Loop-Syntax verwenden zu können, müssen Sie Ihre Schleifenvariable definieren, einen Doppelpunkt setzen und dann den Namen Ihres Arrays angeben. Der folgende Code bietet beispielsweise die ähnliche Schleifenstruktur wie die zuvor gezeigte for-Schleife:

for (int num: aNums) String strToPrint = num;  

Wie Sie sehen, ist die for-each-Schleife glatt. Sie kennen den Index jedoch nicht mehr, wenn Sie iterieren. Daher kann es nicht in allen Situationen verwendet werden.

Fazit

In dieser kurzen Lektion haben Sie Arrays in Java kennen gelernt. Arrays sind eine grundlegende Datenstruktur für die Java-Programmierung, in der eine geordnete Anzahl von Objekten eines bestimmten Typs auf organisierte Weise gespeichert wird. In Java sind Arrays selbst Objekte und speichern Verweise auf Objekte, wodurch die Zuweisung und Verwendung vereinfacht wird (aber sich subtil unterscheidet), als wenn Arrays in anderen Programmiersprachen verwendet werden.

Über die Autoren

Die mobilen Entwickler Lauren Darcey und Shane Conder haben mehrere Bücher zur Android-Entwicklung mitgeschrieben: ein ausführliches Programmierbuch mit dem Titel Android Wireless-Anwendungsentwicklung und Sams TeachYourself Entwicklung von Android-Anwendungen in 24 Stunden. Wenn sie nicht schreiben, verbringen sie ihre Zeit damit, mobile Software in ihrem Unternehmen zu entwickeln und Beratungsdienste anzubieten. Sie können sie per E-Mail an [email protected], über ihren Blog unter androidbook.blogspot.com und über Twitter @androidwireless erreichen.