Verwenden von Sammlungen
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Deklarieren und Initialisieren einer Liste
- Erläutern von zwei Möglichkeiten zum Hinzufügen von Elementen zu einer Liste
Sammlungen
Eine Sammlung ist eine Art von Variable, die mehrere Elemente speichern kann. In unserem Teebeispiel gibt es eine Zuckerdose mit mehreren Zuckerwürfeln. Die Zuckerdose gilt als eine Sammlung und die Zuckerwürfel sind Elemente, die in dieser Sammlung gespeichert werden.
Wenngleich es drei Arten von Apex-Sammlungen gibt (Listen, Sets und Maps), konzentrieren wir uns in diesem Modul nur auf Listen.
Listen
Eine Apex-Liste ist eine geordnete Gruppe von Elementen desselben Typs, wie z. B. eine Einkaufsliste.
- Tea (Tee)
- Sugar (Zucker)
- Honey (Honig)
- Milk (Milch)
Jedes Element in der Einkaufsliste ist eine Zeichenfolge und hat eine eigene Position in der Liste. Zum Deklarieren einer Liste benötigen Sie verschiedene Dinge. Sie arbeiten mit dem reservierten Wort "list", dem Datentyp (alle Elemente müssen denselben Datentyp haben) zwischen den Zeichen <> und dem reservierten Wort "new". Am Ende dieser Anweisung stehen die erforderlichen Klammern.
Deklarieren einer leeren Liste
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
//Declare the groceries list List<String> groceries = new List<String>(); //The output for this statement is an empty list, (). System.debug('Groceries Value: ' + groceries);
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet.
- Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.
Als Sie den Code ausgeführt haben, haben Sie wahrscheinlich bemerkt, dass die Ausgabe () war. Da Sie der Liste nichts hinzugefügt haben, ist sie leer. Bei der Deklaration der Liste groceries
haben Sie einen einzelnen leeren Bereich erstellt, der für das Hinzufügen von Elementen bereit ist.
Deklarieren einer Liste mit fester Größe
Wenn wir genau wissen, wie lang unsere Liste sein soll, können wir die Größe bei der Deklaration der Liste festlegen. Dazu fügen wir die Größe in eckigen Klammern, [ ], hinter dem Datentyp so wie hier ein:
Dieser Code deklariert eine Liste von Zeichenfolgen mit dem Namen "groceries" und legt ihre Größe auf 4 Zeichenfolgen fest. Die leere Liste "groceries" sieht wie folgt aus:
Die sequenzielle Position eines Elements ist eine Zahl, die als Index bezeichnet wird. Über den Index verweisen wir auf Elemente. Sie haben wahrscheinlich gelernt, beim Zählen mit der Nummer eins zu beginnen. In vielen Programmiersprachen beginnt die Zählung jedoch bei 0! Somit wird unsere Liste jetzt so aussehen, wenn wir unseren Apex-Code schreiben.
- Tea (Tee)
- Sugar (Zucker)
- Honey (Honig)
- Milk
Der Index, mit dem Sie auf ein bestimmtes Element in der Liste zeigen, ist Index 0 für Tea, Index 1 für Sugar, Index 2 für Honey usw.
Sie verweisen auf ein bestimmtes Element in der Liste über seinen Index (seine Position innerhalb der Liste) wie folgt:
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
String[] groceries = new String[4]; System.debug('Initialized groceries: ' + groceries); System.debug('Item 0: ' + groceries[0]);
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet.
- Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.
Der Wert des ersten Elements in der Liste ist 0. Lassen Sie uns der Liste einige Elemente hinzufügen.
Initialisieren einer Liste
Beim Initialisieren einer Liste werden ihr anfängliche Werte zugewiesen. Es gibt zwei Möglichkeiten zum Hinzufügen von Elementen zu einer Liste:
- Deklarieren und Initialisieren einer Liste
//Sets the first item in the list to 'Tea' List<String> groceries = new List<String>{'Tea'};
- Deklarieren einer leeren Liste, der später Werte hinzugefügt werden
List<String> groceries = new List<String>(); groceries.add('Tea');
Deklarieren und Initialisieren einer Liste
Die Syntax zur Initialisierung einer Liste mit Werten ähnelt der Deklaration einer leeren Liste. Der Unterschied besteht darin, dass Sie anstelle von Klammern ( ( )
) geschweifte Klammern ( { }
) verwenden, um Werte hinzuzufügen.
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
//Declare the groceries list List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'}; //The output for this statement is Tea, Sugar, Honey, Milk System.debug('Groceries: ' + groceries);
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet.
- Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.
Deklarieren einer leeren Liste, der später Werte hinzugefügt werden
Was ist jedoch, wenn Sie später Elemente hinzufügen möchten? Apex bietet Methoden, die Ihnen das Arbeiten mit Listen ermöglichen. Lassen Sie uns mithilfe der "add"-Methode der Liste "groceries" einige Elemente hinzufügen.
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
//Create the groceries list List<String> groceries = new List<String>(); //The output for this statement is null System.debug('Groceries: ' + groceries); //Use the add method to add an element to the list groceries.add('Tea'); groceries.add('Sugar'); groceries.add('Honey'); groceries.add(2, 'Milk'); //The output for this statement is Tea, Sugar, Milk, Honey System.debug('Groceries: ' + groceries);
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet.
- Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.
Haben Sie den Punkt (.) zwischen groceries
und add
bemerkt? In Apex wird die Punktnotation verwendet. Die Punktnotation hat mehrere Zwecke. In Zeile 8 verbinden wir die add
-Methode (die Apex bereitstellt) und die Liste groceries
mit einem Punkt, um der Liste ein Element (Tea) hinzuzufügen.
Zeile 11 veranschaulicht eine weitere Möglichkeit, ein Element einer Liste hinzuzufügen, indem das Element an einem bestimmten Index (einer Position) eingefügt wird:
Sobald Sie sich weiter mit Apex-Code beschäftigen, erfahren Sie, wie Sie die zu verwendende Methode bestimmen können. Aber die Grundlagen, die Sie in dieser Einheit erlernen, können Ihnen beim Einstieg helfen.
Weitere Informationen zu Listen
Verschiedene Möglichkeiten, Elemente einer Liste hinzuzufügen, führen zu leicht unterschiedlichen Ergebnissen und manchmal sogar zu unerwarteten Ergebnissen. Probieren Sie diese Übung.
- Klicken Sie in der Developer Console auf Debug | Open Execute Anonymous Window.
- Kopieren Sie diesen Code und fügen Sie ihn in das Fenster "Enter Apex Code" ein.
String[] groceries = new String[4]; System.debug('Groceries: ' + groceries); groceries.add('Tea'); groceries.add('Sugar'); System.debug('Added 2 items: ' + groceries); groceries.add(1, 'Honey'); System.debug('Added Honey in index 1: ' + groceries); System.debug('Item 0: ' + groceries[0]);
- Aktivieren Sie das Kontrollkästchen Open Log und klicken Sie dann auf Execute. Das Ausführungsprotokoll wird mit dem Ergebnis der Ausführung des Codes geöffnet.
- Aktivieren Sie unten im Fenster das Kontrollkästchen Debug Only.
Interessante Ergebnisse:
Als wir die beiden Zeichenfolgen in den Zeilen 4 und 5 hinzugefügt haben, haben wir keinen Index angegeben, weshalb Tea and Sugar am Ende der Liste hinzugefügt wurden, wodurch die Listengröße von vier auf sechs Zeichenfolgen erhöht wurde. In Zeile 8 haben wir Index 1 für Honey explizit angegeben, warum ist also Honey nicht an erster Stelle in der Liste? Denken Sie daran, dass wir bei der Programmierung mit dem Zählen immer mit 0 statt mit 1 beginnen. In Zeile 11 ist der erste Index in der Liste 0, der derzeit einen null
-Wert enthält.
Das Schreiben von Code ist dem Lösen von mathematischen Problemen sehr ähnlich. Sie haben eine Gleichung, aber es gibt unzählige Möglichkeiten, eine Aufgabe zu meistern. In dieser Lektion haben Sie erfahren, dass es in Apex mehr als eine Möglichkeit gibt, mit Listen zu arbeiten. Ob Sie eine Liste deklarieren, eine Liste initialisieren oder auf einen bestimmten Wert in einer Liste verweisen möchten – wie Sie das machen, ist Ihre Entscheidung. Zu viele Optionen? Keine Sorge! Sobald Sie sich mit Apex vertraut gemacht haben, probieren Sie die Dinge auf verschiedene Weise aus, und Sie werden anfangen, besser zu verstehen, welche Methoden unter welchen Umständen am besten funktionieren.