Apex - Bộ sưu tập

Bộ sưu tập là một loại biến có thể lưu trữ nhiều bản ghi. Ví dụ: Danh sách có thể lưu trữ nhiều bản ghi của đối tượng Tài khoản. Bây giờ chúng ta hãy xem tổng quan chi tiết về tất cả các loại bộ sưu tập.

Danh sách

Danh sách có thể chứa bất kỳ số lượng bản ghi nguyên thủy, bộ sưu tập, sObjects, người dùng xác định và xây dựng trong kiểu Apex. Đây là một trong những loại tập hợp quan trọng nhất và nó cũng có một số phương pháp hệ thống đã được điều chỉnh riêng để sử dụng với Danh sách. Chỉ mục danh sách luôn bắt đầu bằng 0. Điều này đồng nghĩa với mảng trong Java. Một danh sách nên được khai báo với từ khóa 'Danh sách'.

Example

Dưới đây là danh sách chứa Danh sách của một kiểu dữ liệu nguyên thủy (chuỗi), đó là danh sách các thành phố.

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

Khai báo các giá trị ban đầu của danh sách là tùy chọn. Tuy nhiên, chúng tôi sẽ khai báo các giá trị ban đầu ở đây. Sau đây là một ví dụ cho thấy tương tự.

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

Danh sách tài khoản (sObject)

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

Chúng ta cũng có thể khai báo Danh sách lồng nhau. Nó có thể lên đến năm cấp độ. Đây được gọi là danh sách Đa chiều.

Đây là danh sách tập hợp các số nguyên.

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

Danh sách có thể chứa bất kỳ số lượng bản ghi nào, nhưng có một giới hạn về kích thước đống để ngăn chặn vấn đề hiệu suất và độc quyền tài nguyên.

Phương pháp cho danh sách

Có các phương pháp có sẵn cho Danh sách mà chúng ta có thể sử dụng trong khi lập trình để đạt được một số chức năng như tính toán kích thước của Danh sách, thêm phần tử, v.v.

Sau đây là một số phương pháp được sử dụng thường xuyên nhất -

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

Ví dụ sau minh họa việc sử dụng tất cả các phương pháp này

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

Bạn cũng có thể sử dụng ký hiệu mảng để khai báo Danh sách, như được đưa ra bên dưới, nhưng đây không phải là thông lệ chung trong lập trình Apex -

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

Bộ

Tập hợp là một kiểu tập hợp chứa nhiều bản ghi duy nhất không có thứ tự. Một Tập hợp không thể có các bản ghi trùng lặp. Giống như Danh sách, các Bộ có thể được lồng vào nhau.

Example

Chúng tôi sẽ xác định bộ sản phẩm mà công ty đang bán.

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

Phương pháp cho Bộ

Set không hỗ trợ các phương thức mà chúng tôi có thể sử dụng trong khi lập trình như được hiển thị bên dưới (chúng tôi đang mở rộng ví dụ trên) -

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

Bản đồ

Nó là một cặp giá trị khóa chứa khóa duy nhất cho mỗi giá trị. Cả khóa và giá trị đều có thể thuộc bất kỳ kiểu dữ liệu nào.

Example

Ví dụ sau thể hiện bản đồ của Tên sản phẩm với mã Sản phẩm.

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

Phương pháp cho Bản đồ

Sau đây là một số ví dụ minh họa các phương pháp có thể được sử dụng với Bản đồ -

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

Các giá trị bản đồ có thể không có thứ tự và do đó chúng ta không nên dựa vào thứ tự lưu trữ các giá trị và cố gắng truy cập bản đồ luôn bằng các phím. Giá trị bản đồ có thể là rỗng. Các khóa ánh xạ khi khai báo Chuỗi có phân biệt chữ hoa chữ thường; ví dụ: ABC và abc sẽ được coi là các khóa khác nhau và được coi là duy nhất.