Apex - Koleksiyonlar

Koleksiyonlar, birden çok sayıda kaydı saklayabilen bir değişken türüdür. Örneğin, Liste, birden çok sayıda Hesap nesnesinin kaydını saklayabilir. Şimdi tüm koleksiyon türlerine ayrıntılı bir genel bakışa sahip olalım.

Listeler

Liste, herhangi bir sayıda ilkel, koleksiyon, sObject, kullanıcı tanımlı ve Apex türünde yerleşik kayıt içerebilir. Bu, en önemli toplama türlerinden biridir ve ayrıca, List ile kullanılmak üzere özel olarak uyarlanmış bazı sistem yöntemlerine sahiptir. Liste dizini her zaman 0 ile başlar. Bu, Java'daki diziyle eş anlamlıdır. 'Liste' anahtar kelimesiyle bir liste bildirilmelidir.

Example

Aşağıda, şehirlerin listesi olan ilkel bir veri türünün (dizge) listesini içeren liste bulunmaktadır.

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

Listenin başlangıç ​​değerlerinin bildirilmesi isteğe bağlıdır. Ancak, başlangıç ​​değerlerini burada açıklayacağız. Aşağıda aynı şeyi gösteren bir örnek yer almaktadır.

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

Hesap Listesi (sObject)

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

İç içe geçmiş Listeyi de ilan edebiliriz. Beş seviyeye kadar çıkabilir. Buna Çok Boyutlu liste denir.

Bu, tam sayılar kümesinin listesidir.

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

Liste herhangi bir sayıda kayıt içerebilir, ancak performans sorununu önlemek ve kaynakları tekeline almak için yığın boyutunda bir sınırlama vardır.

Listeler için Yöntemler

Listeler için, Listenin boyutunu hesaplamak, bir eleman eklemek, vb. Gibi bazı işlevleri elde etmek için programlama sırasında kullanabileceğimiz yöntemler vardır.

Aşağıda en sık kullanılan yöntemlerden bazıları verilmiştir -

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

Aşağıdaki örnek, tüm bu yöntemlerin kullanımını göstermektedir

// 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);

Aşağıda verildiği gibi, Listeyi bildirmek için dizi gösterimini de kullanabilirsiniz, ancak bu Apex programlamada genel bir uygulama değildir -

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

Setleri

Bir Küme, birden çok sayıda sıralanmamış benzersiz kayıt içeren bir koleksiyon türüdür. Bir Setin yinelenen kayıtları olamaz. Listeler gibi Setler de yuvalanabilir.

Example

Firmanın sattığı ürün setini tanımlayacağız.

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

Kümeler için Yöntemler

Set, aşağıda gösterildiği gibi programlama sırasında kullanabileceğimiz yöntemleri destekliyor (yukarıdaki örneği genişletiyoruz) -

// 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);

Haritalar

Her bir değer için benzersiz anahtarı içeren bir anahtar değer çiftidir. Hem anahtar hem de değer herhangi bir veri türünde olabilir.

Example

Aşağıdaki örnek, Ürün Adı ile Ürün kodunun haritasını temsil eder.

// 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);

Haritalar için Yöntemler

Aşağıda, Harita ile kullanılabilecek yöntemleri gösteren birkaç örnek verilmiştir -

// 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);

Harita değerleri sıralanmamış olabilir ve bu nedenle değerlerin saklanma sırasına güvenmemeli ve haritaya her zaman tuşları kullanarak erişmeye çalışmamalıyız. Harita değeri boş olabilir. Dize bildirildiğinde eşleme anahtarları büyük / küçük harfe duyarlıdır; örneğin, ABC ve abc farklı anahtarlar olarak kabul edilecek ve benzersiz olarak değerlendirilecektir.