Salesforce Apex — карта

Salesforce Apex Karta



Карта Salesforce Apex — это структура данных, которая в основном используется в сценариях триггеров и помогает загружать больше данных за раз в базу данных Salesforce, например список. Но он хранит и упорядочивает данные в формате пары {ключ:значение}. Мы обсудим сбор карт на языке программирования Apex и его методы. Здесь мы будем использовать стандартный объект Account в Salesforce для всех примеров. Давайте быстро погрузимся в этот урок.

карта

Карта принимает данные пары {ключ:значение} в качестве входных данных и сохраняет их в стандартных или настраиваемых объектах Salesforce. Он может принимать sObject в качестве ключа или значения.







Создание карты

Указав типы данных ключа и значения вместе с именем объекта, можно создать карту. Здесь для его создания используется новое ключевое слово. Передача элементов во время создания может быть необязательной.



Синтаксис пустой карты:

Map map_obj = new Map():

Общий синтаксис:

Map map_obj = new Map{

Ключ => значение,....};

Синтаксис sObject:

Map map_obj = new Map{

Ключ => значение,....};

Здесь sObject может быть стандартным или настраиваемым объектом. Во всей этой статье мы будем иметь дело только с картой с sObject «Account».



Давайте рассмотрим методы, поддерживаемые коллекцией «карт» Apex, один за другим.





Настройка среды

1. Быстро войдите в Salesforce и откройте «Консоль разработчика», щелкнув значок шестеренки.



2. Затем откройте «Анонимное окно», нажав «Отладка» и «Открыть анонимное окно выполнения».

Общий пример:

Во-первых, мы увидим создание общей карты путем создания карты с двумя субъектами: «subject_id», который действует как ключ, и «значение» как имя субъекта.

Map programming=new Map {1=> 'Linux',2=> 'Python'};

system.debug(программирование);

Выход:

  1. Нажмите «Выполнить».
  2. Установите флажок «Только отладка». Вы можете увидеть вывод в «Журнале выполнения».

Методы карты

Сначала мы создаем карту из объекта «Учетная запись». Создаем три аккаунта с именами один за другим. Затем мы объявляем карту с ключом и значением как <объект, целое> введите и передайте предыдущие три учетных записи на карту, указав некоторые значения.

// Создаем 3 аккаунта с именем

Учетная запись account1 = новая учетная запись (Name = 'Linux Hint');

Учетная запись account2 = новая учетная запись (Name = 'Salesforce');

Учетная запись account3 = новая учетная запись (Name = 'Python');

// Добавляем вышеуказанные аккаунты в качестве ключей к map_obj

Map map_obj = new Map{

account1 => 1000,account2 => 2000,account3 => 3000};

System.debug(map_obj);

Выход:

Вы можете видеть, что «map_obj» хранит три учетных записи.

1. Карта.значения()

Чтобы вернуть только значения из данной карты, мы можем использовать метод values(). Он не будет принимать никаких параметров. Он просто возвращает список значений, разделенных запятой.

Синтаксис:

map_object.values()

Пример:

Вернем все значения из предыдущей карты. Убедитесь, что вам нужно выполнить код предыдущего примера (создать карту с тремя учетными записями). В противном случае вы получите ошибку. Код также должен существовать в консоли.

// Возвращаем значения для всех ключей, используя values()

System.debug(map_obj.values());

Выход:

В файле map_obj есть только три пары ключ:значение. Возможные значения: 1000, 2000 и 3000.

2. Карта.keySet()

Вернуть ключи, присутствующие в объекте карты. Как и в values(), этому методу не нужно передавать никаких параметров.

Синтаксис:

map_object.keySet()

Пример:

Вернем все ключи с предыдущей карты. Убедитесь, что вы выполнили код предыдущего примера (создайте карту с тремя учетными записями). В противном случае вы получите ошибку. Код также должен существовать в консоли.

// Возвращаем все ключи, используя keySet()

System.debug(map_obj.keySet());

Выход:

В файле map_obj есть только три пары ключ:значение. Ключи: {Учетная запись:{Name=Подсказка Linux}, Учетная запись:{Name=Python} и Учетная запись:{Name=Salesforce}.

3. Карта.размер()

В некоторых сценариях нам необходимо знать общее количество пар элементов (ключ: значение), присутствующих на карте Apex. Size() — это метод, возвращающий общее количество пар (ключ:значение), существующих в объекте map_object. Для этого метода параметры не нужны.

Синтаксис:

map_object.size()

Пример:

Возвращает размер предыдущего объекта карты.

// Возвращаем общее количество пар, используя size()

System.debug(map_obj.size());

Выход:

Так как есть только 3 пары, возвращаемый size() равен 3.

4. Карта.получить()

Доступ к значениям из карты с использованием ключа осуществляется с помощью метода get(). Для этого нам нужно передать ключ в качестве параметра методу get(). Если передается неизвестный ключ, возвращается ошибка.

Синтаксис:

map_object.get(ключ)

Пример:

Возврат значений ключа 2 и ключа 1 по отдельности.

// получаем значение второго ключа

System.debug(map_obj.get(account2));

// получаем значение первого ключа

System.debug(map_obj.get(account1));

Выход:

Здесь 2000 — это значение ключа Salesforce, а 1000 — значение ключа «Linux Hint».

5. Карта.очистить()

Все пары в коллекции карт Apex можно удалить одновременно с помощью метода clear(). Он не будет принимать никаких параметров.

Синтаксис:

map_object.clear()

Пример:

Удалите пары в предыдущем «map_obj».

//Перед очисткой()

System.debug(map_obj);

// Удаляем все пары с помощью clear()

map_obj.clear();

//После очистки()

System.debug(map_obj);

Выход:

Раньше в «map_obj» было 3 пары ключ-значение. После применения метода clear() все 3 удаляются.

6. Карта.равно()

Мы можем сравнить два объекта карты, используя метод equals(). Логическое значение true возвращается, если все ключи и значения совпадают в обоих объектах карты. В то время как логическое значение false возвращается, если хотя бы одно значение отличается.

Синтаксис:

map_object1.equals(map_object2)

Пример:

Давайте создадим три объекта карты с одной парой ключ: значение, каждый по отношению к объекту «Учетная запись». Сравните эти предметы между собой.

// Аккаунт-1

Учетная запись account1 = новая учетная запись (Name = 'Linux Hint');

Map map_obj1 = new Map{

счет1 => 1000};

System.debug('Карта - 1:' + map_obj1);

// Аккаунт-2

Account account2 = new Account();

Map map_obj2 = new Map{

счет2 => 1000};

System.debug('Карта - 2:' + map_obj1);

// Аккаунт-3

Учетная запись account3 = новая учетная запись (Name = 'Python');

Map map_obj3 = new Map{

аккаунт3 => 2000};

System.debug('Карта - 3:' + map_obj3);

// равно()

System.debug('Карта 1 и Карта 2 равны: '+ map_obj1.equals(map_obj2));

System.debug('Карта 1 и Карта 3 равны: '+ map_obj1.equals(map_obj3));

Выход:

Первый и второй объекты карты равны, так как оба ключа и значения одинаковы в обоих объектах. Первый и третий объекты карты не равны, так как ключи и значения разные.

7. Карта.isEmpty()

Мы можем проверить, пуста карта или нет, используя метод isEmpty(). True возвращается, если коллекция карт Apex пуста. В противном случае возвращается false. Подобно методу size(), он не принимает никаких параметров.

Синтаксис:

map_object.isEmpty()

Пример:

Давайте создадим два объекта карты, которые связаны с «Учетной записью», и проверим, пусты ли они или нет.

// Аккаунт-1

Учетная запись account1 = новая учетная запись (Name = 'Linux Hint');

Map map_obj1 = new Map{

счет1 => 1000};



// Аккаунт-2

Map map_obj2 = new Map();

// пусто()

System.debug('Карта-1 пуста: '+map_obj1.isEmpty());

System.debug('Карта-2 пуста: '+map_obj2.isEmpty());

Выход:

Первая карта не пуста, так как содержит одну пару ключ-значение. Вторая карта пуста, так как не содержит ничего.

8. Карта.удалить()

Метод remove() в коллекции карт Apex используется для удаления определенной пары «ключ-значение» на основе ключа, который указан в нем в качестве параметра. Если ключ не существует, возникает ошибка.

Синтаксис:

map_object.remove (ключ)

Пример:

Давайте создадим карту с двумя элементами и удалим первый элемент.

Учетная запись account1 = новая учетная запись (Name = 'Linux Hint');

Учетная запись account2 = новая учетная запись (Name = 'Python');

Map map_obj = new Map{

счет1 => 1000,счет2 => 4000};

System.debug('Существующая карта'+ map_obj);

//удалять()

map_obj.remove (учетная запись1);

System.debug('После удаления первого элемента:'+map_obj);

Выход:

После удаления первого элемента с карты остался только один элемент — {Account:{Name=Python}=4000}.

9. Карта.put()

Используя этот метод, мы можем напрямую добавлять один элемент к объекту карты за раз. Он принимает два параметра: «ключ» — это первый параметр, а «значение» — второй параметр.

Синтаксис:

map_object.put(ключ,значение)

Пример:

Давайте создадим карту с одной парой ключ-значение. Затем мы используем метод «put», чтобы вставить «account2».

// Аккаунт-1

Учетная запись account1 = новая учетная запись (Name = 'Linux Hint');

Map map_obj1 = new Map{

счет1 => 1000};

System.debug('Фактическая карта: '+map_obj1);

// Аккаунт-2

Учетная запись account2 = новая учетная запись (Name = 'Python');

// помещать()

map_obj1.put(account2,2000);

System.debug('Окончательная карта: '+map_obj1);

Выход:

Раньше на карте была только одна пара ключ-значение {Account:{Name=Linux Hint}=1000}. После добавления «account2» окончательная карта содержит две пары «ключ-значение»: {Account:{Name=Linux Hint}=1000 и Account:{Name=Python}=2000}.

10. Карта.putAll()

Используя этот метод, мы можем напрямую добавлять один или несколько элементов к объекту карты одновременно. Он принимает объект коллекции карт в качестве параметра.

Синтаксис:

map_object1.putAll (map_object2)

Пример:

Давайте создадим карту с двумя парами ключ-значение и снова создадим пустой объект карты без элементов. Используйте метод putAll(), чтобы добавить элементы, доступные в первом объекте карты, во второй объект карты.

Учетная запись account1 = новая учетная запись (Name = 'Linux Hint');

Учетная запись account2 = новая учетная запись (Name = 'Python');

Map map_obj1 = new Map{

аккаунт1 => 1000, аккаунт2=> 2000};

Система.отладка (map_obj1);

Map map_obj2 = new Map();

// поставить все ()

map_obj2.putAll (map_obj1);

Система.отладка (map_obj2);

Выход:

Заключение

Карта — это структура данных, которая в основном используется в сценариях триггеров и помогает загружать больше данных за раз в базу данных Salesforce, например список. У нас есть два варианта добавления элементов на карту: с помощью put() и putAll(). Метод remove() используется для удаления определенного элемента из коллекции карт Apex. Метод clear() используется для удаления всех элементов. Также мы научились возвращать значения и ключи с помощью методов values() и keySet().