7. Arrays


Wie eigentlich immer in der Informatik, müssen wir lediglich den Begriff verstehen, um zu erkennen, um was es geht. Ein elementares Kapitel der Programmierung ist die Anordnung, oder auf Englisch (Array). Das Array ist eine Datenstruktur-Variante, mit der wir Daten verarbeiten, oder anders gesagt, organisieren können. In der Programmierung kommt es nicht selten vor, dass wir mit Daten überhäuft werden, welche es zu organisieren gilt. Ein Array kann also große Datenmengen an einem einzigen Ort abspeichern.

 

7.1 Ein Array erstellen

Die Bildung eines Arrays erinnert im Grunde an die einer Variabel. Auch hier schreiben wir „var“ und im Anschluss den gewünschten Namen. In unserem Beispiel kreieren wir uns ein Array, welches des Datentyps String ist und jeweils einzelne Produkte eines Warenkorbs abspeichert. Daher wählen wir den Namen „warenkorb“. Wenn wir ein Array erstellen, haben wir zwei Möglichkeiten, wie wir vorgehen können. Wir können einerseits ein leeres Array bilden, welches keinerlei Daten enthält, oder wir speichern schon beim Erstellen Daten ab. Das kommt jedoch immer auf den Anwendungszweck an. In unserem Beispiel ist der Warenkorb von Anfang an leer, daher schreiben wir nach dem Gleichheitszeichen den Datentyp in eckige Klammern und schließen mit runden Klammern ab.

var warenkorb = [String]()


Sollten wir jedoch schon wissen, dass der Kunde mit Sicherheit Milch und Butter braucht, können wir diese auch schon von Beginn an in das Array abspeichern. Hier unterscheidet sich die Bildung insofern, dass die eckigen Klammern mit dem Datentyp nicht nach dem Gleichheitszeichen, sondern davor stehen und die Werte nach dem Gleichheitszeichen in eckige Klammern geschrieben und mit Kommas abgetrennt werden.

var warenkorb: [String] = ["Milch", "Butter"]



7.2 Werte einem Array hinzufügen und entfernen

Nun haben wir zwar einen Warenkorb mit Milch und Butter, doch der Kunde muss seinen Einkauf ja irgendwie auch erweitern können. Dafür gibt es in Swift Methoden, die das für uns übernehmen. Wir müssen sie lediglich aufrufen.

Die Methode um Werte anzufügen nennt sich „append“. Sie fügt einen Wert ans Ende des Arrays an. Um sie aufzurufen schreiben wir den Namen des Arrays, anschließen einen Punkt. Dabei sollten uns schon einige Methoden vorgeschlagen werden, unteranderem auch „append“.

warenkorb.append("Eier")
warenkorb.append("Mehl")

Diese Methode hat leider einen Hacken. Sie kann einen Wert nur anfügen aber nicht hinzufügen. Das heißt, der Wert wird zwingend an letzter Stelle angefügt. In manchen Situationen wollen wird jedoch, dass ein Wert an erster, oder zweiter Stelle hinzugefügt wird. Dafür hat Swift ein zweite Methode, die sich „insert“ nennt. Mit ihr haben wir die Möglichkeit den Wert an eine bestimmte Stelle zu speichern.

Dafür müssen wir uns jedoch genauer mit den Arrays befassen, denn ein Array hat für jeden Wert einen Index, der die Stelle beschreibt, an der der Wert sitzt. Dabei ist die erste Stelle nicht der Index 1, sondern der Index 0. Dies mag zu Beginn etwas verwirrend erscheinen, wird sich aber mit der Zeit in euch festbrennen. Das heißt, die fünfte Stelle ist Index 4, die zwölfte Stelle ist Index 11 usw.

Wenn wir also die Methode „insert“ aufrufen, müssen wir den gewünschten Index mitgeben. In unserem Beispiel habe wird dem Warenkorb Brot an der dritten Stelle (Index 2) hinzugefügt.

warenkorb.insert("Brot", at: 2)

Um mal zu sehen, wie viele Werte in unserem Array gespeichert sind, können wir die Methode „count“ aufrufen. Sie gibt uns immer den momentanen Stand zurück. Damit uns die Anzahl in der Konsole ausgegeben wird, rufen wir sie im „print“ auf.

print(warenkorb.count)

Wie dir vermutlich aufgefallen ist, wird uns fünf ausgegeben. Jetzt hat der Kunde aber gemerkt, dass er nicht so viel Geld dabei hat und möchte gerne das letzte Lebensmittel zurückgeben. Die entsprechende Methode dafür nennt sich „removeLast“. Sie entfernt uns den Wert, der an letzter Stelle im Array steht. Das ist in diesem Fall das Mehl.

warenkorb.removeLast()

Als nächsten Merkt der Kunde, dass er auch keine Milch braucht. Da die Milch an erster Stelle des Arrays steht, können wir die Methode „removeFirst“ aufrufen.

warenkorb.removeFirst()

Nun bleiben uns noch die Butter, das Brot und die Eier. Sollte der Kunde merken, dass er doch kein Brot mehr braucht, müssen wir den entsprechenden Index mitgeben.

warenkorb.remove(at: 1)

Solltest du den Idex des zu entfernenden Wertes nicht kennen, kannst du die .index(of: ) Methode zur Hilfe nehmen. Um den Index herauszufinden, gibst du ihr als Parameter den Wert mit. 

warenkorb.remove(at: warenkorb.index(of: "Mehl"))


Wir können nicht nur einzelne Werte entfernen oder ersetzen, sondern auch ganze Spannen. Der Warenkorb enthält noch Butter und Eier, welche plötzlich durch Wasser und Bananen ersetzt werden müssen. Hier geben wir die Spanne an, die ersetzt werden muss und die Werte, die anstelle treten sollen. Die Spanne wird vom einen Index mit drei Punkten zum andern Index angegeben.

warenkorb[0...1] = ["Wasser", "Bananen"]

Da der Kunde ziemlich unentschlossen wirkt, gehen wir mal auf Nummer sicher und gehen davon aus, dass er möglicherweise nichts kaufen möchte. Um den gesamten Warenkorb zu entfernen, gibt es die Methode „removeAll“.

warenkorb.removeAll()

Um zu prüfen, ob der Warenkorb tatsächlich leer ist, könne wir eine simple Kontrollstruktur bilden. Dafür verwenden wir eine Methode, die sich „isEmpty“ nennt.

if warenkorb.isEmpty{
print("Der Warenkorb ist leer")
}else{
print("Der Warenkorb enthält Produkte")
}

 

Stelle uns deine Frage


Julien Rösch


 

Amazon

 

E-Book

 

Gefällt dir CodeStarter?