Apex - Sammlungen

Sammlungen ist ein Variablentyp, der mehrere Datensätze speichern kann. Beispielsweise kann List mehrere Datensätze von Kontoobjekten speichern. Lassen Sie uns nun einen detaillierten Überblick über alle Sammlungsarten geben.

Listen

Die Liste kann eine beliebige Anzahl von Datensätzen von Grundelementen, Sammlungen, sObjects, benutzerdefinierten und im Apex-Typ integrierten Datensätzen enthalten. Dies ist eine der wichtigsten Arten der Sammlung und verfügt über einige Systemmethoden, die speziell auf die Verwendung mit List zugeschnitten sind. Der Listenindex beginnt immer mit 0. Dies gilt auch für das Array in Java. Eine Liste sollte mit dem Schlüsselwort 'Liste' deklariert werden.

Example

Unten finden Sie die Liste, die die Liste eines primitiven Datentyps (Zeichenfolge) enthält, dh die Liste der Städte.

List<string> ListOfCities = new List<string>();
System.debug('Value Of ListOfCities'+ListOfCities);

Das Deklarieren der Anfangswerte der Liste ist optional. Wir werden hier jedoch die Anfangswerte deklarieren. Das Folgende ist ein Beispiel, das dasselbe zeigt.

List<string> ListOfStates = new List<string> {'NY', 'LA', 'LV'};
System.debug('Value ListOfStates'+ListOfStates);

Kontenliste (sObject)

List<account> AccountToDelete = new List<account> (); //This will be null
System.debug('Value AccountToDelete'+AccountToDelete);

Wir können auch die verschachtelte Liste deklarieren. Es kann bis zu fünf Ebenen gehen. Dies wird als mehrdimensionale Liste bezeichnet.

Dies ist die Liste der Ganzzahlen.

List<List<Set<Integer>>> myNestedList = new List<List<Set<Integer>>>();
System.debug('value myNestedList'+myNestedList);

Die Liste kann eine beliebige Anzahl von Datensätzen enthalten, die Größe des Heapspeichers ist jedoch begrenzt, um das Leistungsproblem zu vermeiden und die Ressourcen zu monopolisieren.

Methoden für Listen

Für Listen stehen Methoden zur Verfügung, die wir beim Programmieren verwenden können, um einige Funktionen wie das Berechnen der Listengröße, das Hinzufügen eines Elements usw. zu erreichen.

Im Folgenden sind einige der am häufigsten verwendeten Methoden aufgeführt:

  • size()
  • add()
  • get()
  • clear()
  • set()

Das folgende Beispiel zeigt die Verwendung all dieser Methoden

// Initialize the List
List<string> ListOfStatesMethod = new List<string>();

// This statement would give null as output in Debug logs
System.debug('Value of List'+ ListOfStatesMethod);

// Add element to the list using add method
ListOfStatesMethod.add('New York');
ListOfStatesMethod.add('Ohio');

// This statement would give New York and Ohio as output in Debug logs
System.debug('Value of List with new States'+ ListOfStatesMethod);

// Get the element at the index 0
String StateAtFirstPosition = ListOfStatesMethod.get(0);

// This statement would give New York as output in Debug log
System.debug('Value of List at First Position'+ StateAtFirstPosition);

// set the element at 1 position
ListOfStatesMethod.set(0, 'LA');

// This statement would give output in Debug log
System.debug('Value of List with element set at First Position' + ListOfStatesMethod[0]);

// Remove all the elements in List
ListOfStatesMethod.clear();

// This statement would give output in Debug log
System.debug('Value of List'+ ListOfStatesMethod);

Sie können auch die Array-Notation verwenden, um die Liste wie unten angegeben zu deklarieren. Dies ist jedoch keine allgemeine Vorgehensweise bei der Apex-Programmierung.

String [] ListOfStates = new List<string>();

Sets

Ein Set ist ein Sammlungstyp, der mehrere ungeordnete eindeutige Datensätze enthält. Ein Set kann keine doppelten Datensätze enthalten. Sets können wie Listen verschachtelt werden.

Example

Wir werden die Produktreihe definieren, die das Unternehmen verkauft.

Set<string> ProductSet = new Set<string>{'Phenol', 'Benzene', 'H2SO4'};
System.debug('Value of ProductSet'+ProductSet);

Methoden für Mengen

Set unterstützt Methoden, die wir beim Programmieren verwenden können, wie unten gezeigt (wir erweitern das obige Beispiel) -

// Adds an element to the set
// Define set if not defined previously
Set<string> ProductSet = new Set<string>{'Phenol', 'Benzene', 'H2SO4'};
ProductSet.add('HCL');
System.debug('Set with New Value '+ProductSet);

// Removes an element from set
ProductSet.remove('HCL');
System.debug('Set with removed value '+ProductSet);

// Check whether set contains the particular element or not and returns true or false
ProductSet.contains('HCL');
System.debug('Value of Set with all values '+ProductSet);

Karten

Es ist ein Schlüsselwertpaar, das den eindeutigen Schlüssel für jeden Wert enthält. Sowohl Schlüssel als auch Wert können von einem beliebigen Datentyp sein.

Example

Das folgende Beispiel zeigt die Karte des Produktnamens mit dem Produktcode.

// Initialize the Map
Map<string, string> ProductCodeToProductName = new Map<string, string>
{'1000'=>'HCL', '1001'=>'H2SO4'};

// This statement would give as output as key value pair in Debug log
System.debug('value of ProductCodeToProductName'+ProductCodeToProductName);

Methoden für Karten

Im Folgenden finden Sie einige Beispiele, die die Methoden demonstrieren, die mit Map verwendet werden können.

// Define a new map
Map<string, string> ProductCodeToProductName = new Map<string, string>();

// Insert a new key-value pair in the map where '1002' is key and 'Acetone' is value
ProductCodeToProductName.put('1002', 'Acetone');

// Insert a new key-value pair in the map where '1003' is key and 'Ketone' is value
ProductCodeToProductName.put('1003', 'Ketone');

// Assert that the map contains a specified key and respective value
System.assert(ProductCodeToProductName.containsKey('1002'));
System.debug('If output is true then Map contains the key and output is:'
   + ProductCodeToProductName.containsKey('1002'));

// Retrieves a value, given a particular key
String value = ProductCodeToProductName.get('1002');
System.debug('Value at the Specified key using get function: '+value);

// Return a set that contains all of the keys in the map
Set SetOfKeys = ProductCodeToProductName.keySet();
System.debug('Value of Set with Keys '+SetOfKeys);

Kartenwerte sind möglicherweise ungeordnet. Daher sollten wir uns nicht auf die Reihenfolge verlassen, in der die Werte gespeichert sind, und versuchen, immer mit Schlüsseln auf die Karte zuzugreifen. Der Kartenwert kann null sein. Map-Schlüssel, wenn sie als String deklariert werden, unterscheiden zwischen Groß- und Kleinschreibung. Beispielsweise werden ABC und abc als unterschiedliche Schlüssel betrachtet und als eindeutig behandelt.