Salesforce Apex mapa je dátová štruktúra, ktorá sa používa hlavne v spúšťacích scenároch a pomáha načítať viac údajov naraz do databázy Salesforce ako zoznam. Ale ukladá a organizuje údaje vo formáte párov {key:value}. Budeme diskutovať o zbierke máp v programovacom jazyku Apex a jej metódach. Tu použijeme štandardný objekt Account v Salesforce pre všetky príklady. Poďme sa rýchlo ponoriť do tohto tutoriálu.
Mapa
Mapa berie ako vstup údaje páru {key:value} a ukladá ich do štandardných alebo vlastných objektov Salesforce. Môže mať sObject ako kľúč alebo hodnotu.
Tvorba mapy
Zadaním typov údajov kľúča a hodnoty spolu s názvom objektu je možné vytvoriť mapu. Tu sa na jeho vytvorenie použije nové kľúčové slovo. Môže byť voliteľné odovzdať prvky počas vytvárania.
Syntax prázdnej mapy:
MapaVšeobecná syntax:
MapaKey => hodnota,....};
Syntax sObject:
MapaKey => hodnota,....};
Tu môže byť objekt sObject štandardný alebo vlastný objekt. V celom tomto článku sa budeme zaoberať iba mapou s objektom „Účet“.
Pozrime sa jeden po druhom na metódy, ktoré sú podporované kolekciou „map“ Apex.
Nastavenie prostredia
1. Rýchlo sa prihláste do Salesforce a kliknutím na ikonu ozubeného kolieska otvorte „Developer Console“.
2. Potom otvorte „Anonymné okno“ kliknutím na „Ladiť“ a „Otvoriť anonymné okno“.
Všeobecný príklad:
Najprv uvidíme vytvorenie všeobecnej mapy vytvorením mapy s dvoma subjektmi: „subject_id“, ktorý funguje ako kľúč a „hodnota“ ako názov subjektu.
Mapasystem.debug(programovanie);
Výkon:
- Kliknite na „Vykonať“.
- Začiarknite možnosť „Len ladiť“. Výstup môžete vidieť v „Protokole vykonania“.
Mapové metódy
Najprv vytvoríme mapu z objektu „Účet“. Vytvoríme tri účty s menami jeden po druhom. Potom deklarujeme mapu s kľúčom a hodnotou ako
Účet účet1 = nový účet(Názov='Tip pre Linux');
Účet účet2 = nový účet(Názov='Salesforce');
Účet účet3 = nový účet(Názov='Python');
// Pridajte vyššie uvedené účty ako kľúče do súboru map_obj
Mapa
účet1 => 1000,účet2 => 2000,účet3 => 3000};
System.debug(map_obj);
Výkon:
Môžete vidieť, že „map_obj“ ukladá tri účty.
1. Map.values()
Aby sme vrátili iba hodnoty z danej mapy, môžeme použiť metódu values(). Nepotrebuje žiadne parametre. Jednoducho vráti zoznam hodnôt oddelených čiarkou.
Syntax:
map_object.values()Príklad:
Vráťme všetky hodnoty z predchádzajúcej mapy. Uistite sa, že musíte vykonať predchádzajúci vzorový kód (vytvorte mapu s tromi účtami). V opačnom prípade sa zobrazí chyba. Kód by mal existovať aj v konzole.
// Vráti hodnoty pre všetky kľúče pomocou values()System.debug(map_obj.values());
Výkon:
V súbore map_obj sú iba tri páry kľúč:hodnota. Hodnoty sú: 1000, 2000 a 3000.
2. Map.keySet()
Vráťte kľúče sú prítomné v objekte mapy. Podobne ako pri values(), nie je potrebné odovzdávať do tejto metódy žiadny parameter.
Syntax:
map_object.keySet()Príklad:
Vráťme všetky kľúče z predchádzajúcej mapy. Uistite sa, že ste vykonali predchádzajúci vzorový kód (vytvorte mapu s tromi účtami). V opačnom prípade sa zobrazí chyba. Kód by mal existovať aj v konzole.
// Vráti všetky kľúče pomocou keySet()System.debug(map_obj.keySet());
Výkon:
V súbore map_obj sú iba tri páry kľúč:hodnota. Kľúče sú: {Account:{Name=Linux Hint}, Account:{Name=Python} a Account:{Name=Salesforce}.
3. Map.size()
V niektorých scenároch potrebujeme poznať celkové páry položiek (kľúč:hodnota), ktoré sú prítomné na mape Apex. Size() je metóda, ktorá vracia celkový počet párov (kľúč:hodnota), ktoré existujú v objekte map_object. Pre túto metódu nie sú potrebné parametre.
Syntax:
map_object.size()Príklad:
Vráti veľkosť predchádzajúceho objektu mapy.
// Vráti celkový počet párov pomocou size()System.debug(map_obj.size());
Výkon:
Keďže existujú iba 3 páry, vrátená veľkosť () je 3.
4. Map.get()
Prístup k hodnotám z mapy pomocou kľúča sa vykonáva pomocou metódy get(). Aby sme to dosiahli, musíme odovzdať kľúč ako parameter metóde get(). Ak je odovzdaný neznámy kľúč, vráti chybu.
Syntax:
map_object.get(key)Príklad:
Vráťte hodnoty kľúča-2 a kľúča-1 samostatne.
// získame hodnotu druhého kľúčaSystem.debug(map_obj.get(account2));
// získame hodnotu prvého kľúča
System.debug(map_obj.get(account1));
Výkon:
Tu je 2000 hodnota kľúča „Salesforce“ a 1000 je hodnota kľúča „Linux Hint“.
5. Map.clear()
Všetky páry v kolekcii máp Apex je možné vymazať naraz pomocou metódy clear(). Nepotrebuje žiadne parametre.
Syntax:
map_object.clear()Príklad:
Odstráňte páry v predchádzajúcom „map_obj“.
//Before clear()System.debug(map_obj);
// Odstráňte všetky páry pomocou clear()
map_obj.clear();
//Po vymazaní()
System.debug(map_obj);
Výkon:
Predtým boli v „map_obj“ 3 páry kľúč – hodnota. Po použití metódy clear() sa všetky 3 odstránia.
6. Map.equals()
Pomocou metódy equals() môžeme porovnať dva objekty mapy. Booleovská hodnota true sa vráti, ak sú všetky kľúče a hodnoty rovnaké v oboch objektoch mapy. Booleovská hodnota false sa vráti, ak sa aspoň jedna hodnota líši.
Syntax:
map_object1.equals(map_object2)Príklad:
Vytvorme tri mapové objekty s jedným párom kľúč:hodnota, každý s ohľadom na objekt „Účet“. Porovnajte tieto objekty medzi nimi.
// Účet-1Účet účet1 = nový účet(Názov='Tip pre Linux');
Mapa
účet1 => 1000};
System.debug('Mapa - 1:' + mapa_obj1);
// Účet-2
Účet účet2 = nový účet(Názov='Tip pre Linux');
Mapa
účet2 => 1000};
System.debug('Mapa - 2:' + mapa_obj1);
// Účet-3
Účet účet3 = nový účet(Názov='Python');
Mapa
účet3 => 2000};
System.debug('Mapa - 3:' + mapa_obj3);
// rovná sa()
System.debug('Mapa 1 & Mapa 2 sa rovnajú: '+ map_obj1.equals(map_obj2));
System.debug('Mapa 1 & Mapa 3 sa rovnajú: '+ map_obj1.equals(map_obj3));
Výkon:
Prvý a druhý objekt mapy sú rovnaké, pretože kľúče aj hodnoty sú v oboch objektoch rovnaké. Prvý a tretí objekt mapy nie sú rovnaké, pretože kľúče a hodnoty sú odlišné.
7. Map.isEmpty()
Či je mapa prázdna alebo nie, môžeme skontrolovať pomocou metódy isEmpty(). True sa vráti, ak je zbierka máp Apex prázdna. V opačnom prípade sa vráti false. Podobne ako pri metóde size() nebude mať žiadny parameter.
Syntax:
map_object.isEmpty()Príklad:
Vytvorme dva objekty mapy, ktoré súvisia s „účtom“ a skontrolujeme, či sú prázdne alebo nie.
// Účet-1Účet účet1 = nový účet(Názov='Tip pre Linux');
Mapa
účet1 => 1000};
// Účet-2
Mapa
// je prázdny()
System.debug('Mapa-1 je prázdna: '+map_obj1.isEmpty());
System.debug('Mapa-2 je prázdna: '+map_obj2.isEmpty());
Výkon:
Prvá mapa nie je prázdna, pretože obsahuje jeden pár kľúč – hodnota. Druhá mapa je prázdna, pretože žiadnu neobsahuje.
8. Map.remove()
Metóda remove() v kolekcii máp Apex sa používa na odstránenie konkrétneho páru kľúč – hodnota na základe kľúča, ktorý je v ňom špecifikovaný ako parameter. Ak kľúč neexistuje, zobrazí sa chyba.
Syntax:
map_object.remove(key)Príklad:
Poďme vytvoriť mapu s dvoma položkami a odstrániť prvú položku.
Účet účet1 = nový účet(Názov='Tip pre Linux');Účet účet2 = nový účet(Názov='Python');
Mapa
účet1 => 1000,účet2 => 4000};
System.debug('Existujúca mapa'+ map_obj);
//odstráni()
map_obj.remove(account1);
System.debug('Po odstránení prvej položky:'+map_obj);
Výkon:
Po odstránení prvej položky z mapy existuje iba jedna položka – {Account:{Name=Python}=4000}.
9. Map.put()
Pomocou tejto metódy môžeme priamo pridať jednu položku do objektu mapy naraz. Akceptuje dva parametre: „kľúč“ je prvý parameter, zatiaľ čo „hodnota“ je druhý parameter.
Syntax:
map_object.put(kľúč,hodnota)Príklad:
Vytvorme mapu s jedným párom kľúč – hodnota. Potom použijeme metódu „put“ na vloženie „account2“.
// Účet-1Účet účet1 = nový účet(Názov='Tip pre Linux');
Mapa
účet1 => 1000};
System.debug('Aktuálna mapa: '+map_obj1);
// Účet-2
Účet účet2 = nový účet(Názov='Python');
// vložte ()
map_obj1.put(account2,2000);
System.debug('Konečná mapa: '+map_obj1);
Výkon:
Predtým bol na mape iba jeden pár kľúč – hodnota, a to {Account:{Name=Linux Hint}=1000}. Po pridaní „account2“ obsahuje konečná mapa dva páry kľúč – hodnota, ktoré sú {Account:{Name=Linux Hint}=1000 a Account:{Name=Python}=2000}.
10. Map.putAll()
Pomocou tejto metódy môžeme priamo pridať jednu alebo viacero položiek do objektu mapy naraz. Ako parameter berie objekt kolekcie máp.
Syntax:
map_object1.putAll(map_object2)Príklad:
Vytvorme mapu s dvoma pármi kľúč-hodnota a znova vytvorte prázdny objekt mapy bez položiek. Pomocou metódy putAll() pridajte položky, ktoré sú dostupné v prvom objekte mapy, do druhého objektu mapy.
Účet účet1 = nový účet(Názov='Tip pre Linux');Účet účet2 = nový účet(Názov='Python');
Mapa
účet1 => 1000, účet2=> 2000};
System.debug(map_obj1);
Mapa
//putAll()
map_obj2.putAll(map_obj1);
System.debug(map_obj2);
Výkon:
Záver
Mapa je dátová štruktúra, ktorá sa používa hlavne v spúšťacích scenároch a pomáha načítať viac údajov naraz do databázy Salesforce ako zoznam. Máme dve možnosti, ako pridať položky do mapy: pomocou put() a putAll(). Metóda remove() sa používa na odstránenie konkrétnej položky z kolekcie máp Apex. Metóda clear() sa používa na odstránenie všetkých položiek. Tiež sme sa naučili, ako vrátiť hodnoty a kľúče pomocou metód values() a keySet().