Salesforce Apex - Karte

Salesforce Apex - Karte

Salesforce Apex Map ist eine Datenstruktur, die hauptsächlich in Triggerszenarien verwendet wird und dabei hilft, mehr Daten gleichzeitig in die Salesforce -Datenbank wie eine Liste zu laden. Aber es speichert und organisiert die Daten im Format Schlüssel: Wert. Wir werden die Kartensammlung in der Apex -Programmiersprache und ihren Methoden diskutieren. Hier verwenden wir das Konto -Standardobjekt in Salesforce für alle Beispiele. Lassen Sie uns schnell in dieses Tutorial eintauchen.

Karte

MAP nimmt die Daten Schlüssel: Wert Paardaten als Eingabe und speichert sie in den Salesforce -Standard- oder benutzerdefinierten Objekten. Es kann das Schluchzen als Schlüssel oder Wert annehmen.

Kartenerstellung

Durch Angeben der Datentypen des Schlüssels und des Wertes zusammen mit dem Objektnamen kann die Karte erstellt werden. Hier wird ein neues Keyword verwendet, um es zu erstellen. Es kann optional sein, die Elemente während der Erstellung zu bestehen.

Leere Kartensyntax:

MAP MAP_OBJ = NEW MAP ():

Generische Syntax:

MAP MAP_OBJ = NEUE MAP
Key => Wert,…;

Sobject Syntax:

MAP MAP_OBJ = NEUE MAP
Key => Wert,…;

Hier kann das Schluchzen ein Standard- oder benutzerdefiniertes Objekt sein. In diesem gesamten Artikel werden wir uns nur mit der Karte mit dem SOBJECT "Account" befassen.

Sehen wir uns die Methoden an, die von der Apex "Map" -Kollektion nacheinander unterstützt werden.

Umgebungsaufbau

1. Melden Sie sich schnell bei Salesforce an und öffnen Sie die „Entwicklerkonsole“, indem Sie auf das Zahnradsymbol klicken.

2. Öffnen Sie dann das "Anonymous -Fenster", indem Sie auf "Debug" klicken und "Öffnen Sie anonymes Fenster aus.".

Generisches Beispiel:

Zunächst werden wir die generische Kartenerstellung sehen, indem wir eine Karte mit zwei Fächern erstellen: die „Subjekt_ID“, die als Schlüssel und „Wert“ als Betreff Name fungiert.

Map programmierung = new map 1 => 'linux', 2 => 'python';
System.Debugg (Programmierung);

Ausgang:

  1. Klicken Sie auf "Ausführen".
  2. Überprüfen Sie die Option "Nur Debugug". Sie können die Ausgabe im "Ausführungsprotokoll" sehen.

Kartenmethoden

Zunächst erstellen wir eine Karte aus dem Objekt "Konto". Wir erstellen drei Konten mit Namen nacheinander. Dann deklarieren wir eine Karte mit dem Schlüssel und dem Wert als Wert Geben Sie die vorherigen drei Konten an die Karte ein und übergeben Sie einige Werte.

// 3 Konten mit Namen erstellen
Account Account1 = neues Konto (name = 'Linux Hint');
Account Account2 = neues Konto (name = 'salesforce');
Account Account3 = neues Konto (Name = 'Python');
// Fügen Sie den oben genannten Konten als Schlüssel zum map_obj hinzu
MAP MAP_OBJ = NEUE MAP
Account1 => 1000, Account2 => 2000, Account3 => 3000;
System.Debug (MAP_OBJ);

Ausgang:

Sie können sehen, dass "map_obj" drei Konten speichert.

Karte.Werte()

Um nur die Werte aus der angegebenen Karte zurückzugeben, können wir die Methode Values ​​() verwenden. Es werden keine Parameter benötigt. Es gibt einfach die Liste der von Comma getrennten Werte zurück.

Syntax:

map_object.Werte()

Beispiel:

Lassen Sie uns alle Werte aus der vorherigen Karte zurückgeben. Stellen Sie sicher, dass Sie den vorherigen Beispielcode ausführen müssen (erstellen Sie eine Karte mit drei Konten). Andernfalls erhalten Sie einen Fehler. Der Code sollte auch in der Konsole existieren.

// Werte für alle Tasten mithilfe von Werten () zurückgeben ()
System.Debug (MAP_OBJ.Werte());

Ausgang:

Es gibt nur drei Schlüssel: Wertpaare im MAP_OBJ. Die Werte sind: 1000, 2000 und 3000.

Karte.Schlüsselsatz()

Geben Sie die Schlüssel zurück, die im Kartenobjekt vorhanden sind. Ähnlich wie Werte () muss kein Parameter an diese Methode übergeben werden.

Syntax:

map_object.Schlüsselsatz()

Beispiel:

Lassen Sie uns alle Schlüssel aus der vorherigen Karte zurückgeben. Stellen Sie sicher, dass Sie den vorherigen Beispielcode ausführen (erstellen Sie eine Karte mit drei Konten). Andernfalls erhalten Sie einen Fehler. Der Code sollte auch in der Konsole existieren.

// Geben Sie alle Tasten mit Keyset () zurück) zurück
System.Debug (MAP_OBJ.Schlüsselsatz());

Ausgang:

Es gibt nur drei Schlüssel: Wertpaare im MAP_OBJ. Die Tasten sind: Konto: name = Linux Hint, Konto: name = python und Konto: name = salesforce.

Karte.Größe()

In einigen Szenarien müssen wir die gesamten Elemente (Schlüssel: Wert) kennen, die in der Apex -Karte vorhanden sind. Size () ist die Methode, die die Gesamtpaare (Schlüssel: Wert) zurückgibt, die im MAP_OBJECT vorhanden sind. Für diese Methode sind keine Parameter erforderlich.

Syntax:

map_object.Größe()

Beispiel:

Geben Sie die Größe des vorherigen Kartenobjekts zurück.

// Die Gesamtzahl der Paare mit size () zurückgeben
System.Debug (MAP_OBJ.Größe());

Ausgang:

Da es nur 3 Paare gibt, beträgt die zurückgegebene Größe () 3.

Karte.erhalten()

Zugriff auf die Werte über die Karte mit dem Schlüssel erfolgt mit der Methode GET (). Dazu müssen wir den Schlüssel als Parameter an die Get () -Methode übergeben. Wenn ein unbekannter Schlüssel übergeben wird, gibt er einen Fehler zurück.

Syntax:

map_object.Holen Sie sich (Schlüssel)

Beispiel:

Geben Sie die Werte von Key-2 und Key-1 getrennt zurück.

// Erhalten Sie den Wert des zweiten Schlüssels
System.Debug (MAP_OBJ.Get (Account2));
// Erhalten Sie den Wert des ersten Schlüssels
System.Debug (MAP_OBJ.erhalten (Account1));

Ausgang:

Hier ist 2000 der Wert des Schlüsselschlüssels „Salesforce“ und 1000 der Wert des Schlüsselschlüssels „Linux Tipp“ ist.

Karte.klar()

Alle Paare in einer Apex -Kartensammlung können gleichzeitig mit der Methode clear () gelöscht werden. Es werden keine Parameter benötigt.

Syntax:

map_object.klar()

Beispiel:

Entfernen Sie die Paare im vorherigen "MAP_OBJ".

// vor clear ()
System.Debug (MAP_OBJ);
// Entfernen Sie alle Paare mit Clear ()
MAP_OBJ.klar();
// nach clear ()
System.Debug (MAP_OBJ);

Ausgang:

Zuvor gibt es 3 Schlüsselwertepaare im „MAP_OBJ“. Nach der Anwendung der Clear () -Methode werden alle 3 gelöscht.

Karte.gleich ()

Wir können zwei Kartenobjekte mit der Equals () -Methode vergleichen. Der boolesche Wert von True wird zurückgegeben, wenn alle Schlüssel und Werte in beiden Kartenobjekten gleich sind. Während der Boolesche Wert von False zurückgegeben wird, wenn mindestens ein Wert unterschiedlich ist.

Syntax:

map_object1.Equals (MAP_OBJECT2)

Beispiel:

Erstellen wir drei Kartenobjekte mit einem Schlüssel: Wertpaar, jeweils in Bezug auf das Objekt "Konto". Vergleichen Sie diese Objekte unter ihnen.

// Account-1
Account Account1 = neues Konto (name = 'Linux Hint');
MAP MAP_OBJ1 = NEUE MAP
Account1 => 1000;
System.debug ('map - 1:' + map_obj1);
// Konto-2
Account Account2 = neues Konto (name = 'Linux Hint');
MAP MAP_OBJ2 = NEUE MAP
Account2 => 1000;
System.debug ('map - 2:' + map_obj1);
// Account-3
Account Account3 = neues Konto (Name = 'Python');
MAP MAP_OBJ3 = NEUE MAP
Account3 => 2000;
System.debug ('map - 3:' + map_obj3);
// gleich ()
System.Debug ('Map 1 & Map 2 sind gleich:'+ map_obj1.Equals (MAP_OBJ2));
System.Debug ('Map 1 & Map 3 sind gleich:'+ map_obj1.Equals (MAP_OBJ3));

Ausgang:

Die ersten und zweiten Kartenobjekte sind gleich, da sowohl Schlüssel als auch Werte in beiden Objekten gleich sind. Die ersten und dritten Kartenobjekte sind nicht gleich, da die Schlüssel und Werte unterschiedlich sind.

Karte.ist leer()

Wir können überprüfen, ob die Karte leer ist oder nicht die IsEmpty () -Methode verwendet. True wird zurückgegeben, wenn die Apex -Kartensammlung leer ist. Ansonsten wird falsch zurückgegeben. Ähnlich wie bei der Methode Size () wird kein Parameter erforderlich.

Syntax:

map_object.ist leer()

Beispiel:

Erstellen wir zwei Kartenobjekte, die sich auf „Konto“ beziehen, und überprüfen Sie, ob diese beiden leer sind oder nicht.

// Account-1
Account Account1 = neues Konto (name = 'Linux Hint');
MAP MAP_OBJ1 = NEUE MAP
Account1 => 1000;
// Konto-2
MAP MAP_OBJ2 = NEW MAP ();
// ist leer()
System.debug ('map-1 ist leer:'+map_obj1.ist leer());
System.debug ('map-2 ist leer:'+map_obj2.ist leer());

Ausgang:

Die erste Karte ist nicht leer, da sie ein Schlüsselwertpaar enthält. Die zweite Karte ist leer, da sie keine enthält.

Karte.entfernen()

Mit der Methode von REME () in der Apex-Kartensammlung werden ein bestimmtes Schlüsselwertpaar basierend auf dem Schlüssel entfernen, der darin als Parameter angegeben ist. Wenn der Schlüssel nicht vorhanden ist, wird ein Fehler angesprochen.

Syntax:

map_object.entfernen (Schlüssel)

Beispiel:

Erstellen wir eine Karte mit zwei Elementen und entfernen Sie das erste Element.

Account Account1 = neues Konto (name = 'Linux Hint');
Account Account2 = neues Konto (Name = 'Python');
MAP MAP_OBJ = NEUE MAP
Account1 => 1000, Account2 => 4000;
System.debug ('vorhandene map'+ map_obj);
//entfernen()
MAP_OBJ.entfernen (Konto1);
System.Debug ('nach dem Entfernen des ersten Elements:'+map_obj);

Ausgang:

Nach dem Entfernen des ersten Elements aus der Karte existiert nur ein Element - Konto: name = python = 4000.

Karte.setzen()

Mit dieser Methode können wir gleichzeitig ein Element zum Kartenobjekt hinzufügen. Es akzeptiert zwei Parameter: „Schlüssel“ ist der erste Parameter, während „Wert“ der zweite Parameter ist.

Syntax:

map_object.put (Schlüssel, Wert)

Beispiel:

Erstellen wir eine Karte mit einem Schlüsselwertpaar. Anschließend verwenden wir die "Put" -Methode, um "Account2" einzufügen.

// Account-1
Account Account1 = neues Konto (name = 'Linux Hint');
MAP MAP_OBJ1 = NEUE MAP
Account1 => 1000;
System.Debug ('tatsächliche Karte:'+map_obj1);
// Konto-2
Account Account2 = neues Konto (Name = 'Python');
// setzen()
MAP_OBJ1.put (Account2,2000);
System.Debug ('endgültige Karte:'+map_obj1);

Ausgang:

Zuvor gibt es in der Karte nur ein Schlüsselwertpaar, nämlich Konto: name = linux tipp = 1000. Nach dem Hinzufügen von "Account2" enthält die endgültige Karte zwei Schlüsselwertpaare, nämlich Konto: name = Linux Hint = 1000 und Account: name = python = 2000.

Karte.putall ()

Mit dieser Methode können wir dem Kartenobjekt gleich eine einzelne oder mehrere Elemente gleichzeitig hinzufügen. Es dauert ein Kartensammlungsobjekt als Parameter.

Syntax:

map_object1.putall (MAP_OBJECT2)

Beispiel:

Erstellen wir eine Karte mit zwei Schlüsselwertpaaren und erstellen Sie erneut ein leeres Kartenobjekt ohne Elemente. Verwenden Sie die Methode PUTALL (), um die Elemente hinzuzufügen, die im ersten Kartenobjekt zum zweiten Kartenobjekt verfügbar sind.

Account Account1 = neues Konto (name = 'Linux Hint');
Account Account2 = neues Konto (Name = 'Python');
MAP MAP_OBJ1 = NEUE MAP
Account1 => 1000, Account2 => 2000;
System.Debug (MAP_OBJ1);
MAP MAP_OBJ2 = NEW MAP ();
// putall ()
MAP_OBJ2.putall (MAP_OBJ1);
System.Debug (MAP_OBJ2);

Ausgang:

Abschluss

MAP ist eine Datenstruktur, die hauptsächlich in Triggerszenarien verwendet wird und hilft, mehr Daten gleichzeitig in die Salesforce -Datenbank wie eine Liste zu laden. Wir haben zwei Optionen, um die Elemente in die Karte hinzuzufügen: Verwenden Sie Put () und putall (). Mit der Methode von REME () werden ein bestimmtes Element aus der Apex -Kartensammlung entfernen. Die Methode Clear () wird verwendet, um alle Elemente zu löschen. Außerdem haben wir gelernt, wie man die Werte und Schlüssel mit den Methoden Values ​​() und Keyset () zurückgibt.