Puncak - Koleksi

Koleksi adalah jenis variabel yang dapat menyimpan beberapa record. Misalnya, Daftar dapat menyimpan beberapa catatan objek Akun. Sekarang mari kita memiliki gambaran umum mendetail dari semua jenis koleksi.

Daftar

Daftar dapat berisi sejumlah catatan primitif, koleksi, sObjects, yang ditentukan pengguna dan dibangun dalam tipe Apex. Ini adalah salah satu jenis koleksi terpenting dan juga, memiliki beberapa metode sistem yang telah disesuaikan secara khusus untuk digunakan dengan List. Indeks daftar selalu dimulai dengan 0. Ini identik dengan larik di Jawa. Sebuah daftar harus dideklarasikan dengan kata kunci 'Daftar'.

Example

Di bawah ini adalah list yang berisi List dari tipe data primitive (string), yaitu list kota.

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

Mendeklarasikan nilai awal list adalah opsional. Namun, kami akan mendeklarasikan nilai awal di sini. Berikut adalah contoh yang menunjukkan hal yang sama.

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

Daftar Akun (sObject)

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

Kami juga dapat mendeklarasikan Daftar bersarang. Itu bisa naik hingga lima level. Ini disebut daftar Multidimensi.

Ini adalah daftar kumpulan bilangan bulat.

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

Daftar dapat berisi sejumlah catatan, tetapi ada batasan pada ukuran tumpukan untuk mencegah masalah kinerja dan memonopoli sumber daya.

Metode untuk Daftar

Ada metode yang tersedia untuk Daftar yang dapat kita gunakan saat memprogram untuk mencapai beberapa fungsi seperti menghitung ukuran Daftar, menambahkan elemen, dll.

Berikut adalah beberapa metode yang paling sering digunakan -

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

Contoh berikut menunjukkan penggunaan semua metode ini

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

Anda dapat menggunakan notasi array juga untuk mendeklarasikan List, seperti yang diberikan di bawah ini, tetapi ini bukan praktik umum dalam pemrograman Apex -

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

Set

Set adalah jenis koleksi yang berisi beberapa catatan unik tak berurutan. Kumpulan tidak dapat memiliki rekaman duplikat. Seperti Daftar, Kumpulan dapat disarangkan.

Example

Kami akan menentukan rangkaian produk yang dijual oleh perusahaan.

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

Metode untuk Set

Set tidak mendukung metode yang dapat kita gunakan saat memprogram seperti yang ditunjukkan di bawah ini (kami memperluas contoh di atas) -

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

Maps

Ini adalah pasangan nilai kunci yang berisi kunci unik untuk setiap nilai. Baik kunci maupun nilai bisa dari tipe data apa pun.

Example

Contoh berikut mewakili peta Nama Produk dengan kode Produk.

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

Metode untuk Maps

Berikut adalah beberapa contoh yang menunjukkan metode yang dapat digunakan dengan Map -

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

Nilai peta mungkin tidak berurutan dan karenanya kita tidak boleh bergantung pada urutan penyimpanan nilai dan mencoba mengakses peta selalu menggunakan kunci. Nilai peta bisa nol. Kunci peta ketika menyatakan String peka huruf besar kecil; misalnya, ABC dan abc akan dianggap sebagai kunci yang berbeda dan diperlakukan sebagai unik.