📜  Apex-收藏

📅  最后修改于: 2020-11-05 03:11:21             🧑  作者: Mango


集合是一种变量,可以存储多个记录。例如,列表可以存储多个Account对象的记录。现在让我们详细了解所有集合类型。

清单

列表可以包含任意数量的原语,集合,sObjects,用户定义并以Apex类型构建的记录。这是最重要的集合类型之一,并且它具有一些专门针对List量身定制的系统方法。列表索引始终以0开头。这与Java中的数组同义。应使用关键字“列表”声明列表。

下面的列表包含原始数据类型的列表(字符串),即城市列表。

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

声明list的初始值是可选的。但是,我们将在此处声明初始值。以下是显示相同内容的示例。

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

帐户清单(sObject)

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

我们也可以声明嵌套列表。它可以上升到五个级别。这称为多维列表。

这是整数集的列表。

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

列表可以包含任意数量的记录,但是为了防止性能问题和垄断资源,对堆大小有限制。

列表方法

有一些Lists可用的方法,我们可以在编程时利用这些方法来实现一些功能,例如计算List的大小,添加元素等。

以下是一些最常用的方法-

  • 尺寸()
  • 加()
  • 得到()
  • 明确()
  • 组()

下面的示例演示了所有这些方法的用法

// Initialize the List
List ListOfStatesMethod = new List();

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

您也可以使用数组符号来声明List,如下所示,但这不是Apex编程中的常规做法-

String [] ListOfStates = new List();

套装

集合是一种集合类型,其中包含多个无序唯一记录。集合不能有重复的记录。像列表一样,集合可以嵌套。

我们将定义公司销售的产品集。

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

集合方法

Set确实支持我们可以在编程时使用的方法,如下所示(我们在扩展上面的示例)-

// Adds an element to the set
// Define set if not defined previously
Set ProductSet = new Set{'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);

地图

它是一个键值对,其中包含每个值的唯一键。键和值都可以是任何数据类型。

以下示例表示带有产品代码的产品名称的映射。

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

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

地图方法

以下是一些示例,这些示例演示了可用于Map的方法-

// Define a new map
Map ProductCodeToProductName = new Map();

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

映射值可能是无序的,因此我们不应依赖于存储值的顺序,而应尝试始终使用键来访问映射。地图值可以为null。声明为String时,映射键区分大小写;例如,ABC和abc将被视为不同的密钥,并被视为唯一。