• USA : +1 973 910 5725
  • INDIA: +91 905 291 3388
  • info@tekslate.com
  • Login

Collections

Collections in Salesforce

Collections:- Collections are the group of similar types Apex has the following types of Collections

  • Lists
  • Maps
  • Sets

There is no limit on the number of items a collection can hold However there is a general limit on heap size.

Lists

A list is an ordered collection of typed primitives SObjects, user-defined objects, Apex objects or collections that are distinguished by their includes.

40 90 50 70  20

0         1           2       3           4

  • The index position of the first element in a list is always ‘0’
  • To declare a list, use the list keyword followed by the primitive data, SObject, nested list, map, or set type within < > characters

List< String > Mylist= new list<string>();

This will store the block of memory at the database

List <List<set<Integer>>>mylist2= new list <list<set<Integer>>>(); Nested List

Note:- A list can only contain up to five levels of nested collections inside it.

*The following example describes us about the retrieving 100 accounts stored in variable.

List<Account> accs= select Id,Name FROM Account limit 100 ;

*To access elements in a list, use the system methods provided by Apex.

Ex:- List<Integer> Li=new list<Integer>(); Define a new List

Li.add(47);  adds a second element of value 47 to the end of the list

Integer x= Li.get(1);Retrieves the element at index 1.

Li.Set(0,73); adds the integer 73 to the list at index o

Li.clear();  —>  removes all elements from the list                                

*Go to the Developer console and execute the following code and check the result by going through USER-DEBUG

List<String> Li=new List<string>();

Li.add(‘Anil’);

Li.add(‘sateesh’);

Li.add(‘nagaraju’);

System.debug(Li);  à the o/p from this line is

Anail Laxman vissu Ramu Sita

0              2            3         4       5

String name = Li.get (0);
System.debug (name); ---> the o/p from this line is ANIL
Li.set(2, ‘sanjeev’);
System debug (Li);  --->      the o/p from this line is
Li.clear ();   --->   clear all elements in a list
System.debug (li);  ---> the o/p from this line is null.

Note:- In a list, we can add Duplicate values that is duplicate values will be allowed inside a list.

Aspired to become an Salesforce? Explore the post to discover the know-hows on Salesforce Online Training.

Sets

A set is an unordered collection of primitives or SObjects that do not contain any duplicate elements.To declare a set, use the set keyword followed by the primitive data type name within < > characters

Ex:-

set <string> s= new set < string > ();
To access elements in a set use the system methods provided by Apex.
<Integer> s=new set <Integer>(); --->   Define a new set
S.add (1);    --->  Adding an element to the set
Boolean b= s.contains(1);    ---> It will returns true when the element ‘1’ contains within the set.
s.remove (1);  ---> Remove the element from the set
*Go to the Developer console and execute the following code and check the result by going through USER-DEBUG();
Set <string> s=new set <string>(); s.add(‘red’);
s.add(‘bule’);
s.add(‘Black’);
s.add('green');
system.debug (s);
This statement gives the o/p below
{Black, blue ,green ,red ]
s.remove ('green'); system.debug (s);
This statement gives the Output as below {Black, blue, red}
s.add ('red'); system.debug(s)

#### This statement gives the o/p as below

{black, blue, red} because the set will not allow duplicate values inside it Boolean b= s.contains (‘black’)

###Returns true when the value ‘black’ is within set and it returns “False” when the value ‘black’ is not there within set.

*Uniqueness of sobjects is determined by comparing fields

            EX:-If we try to add two accounts with the same name to a set,only one is added.

//Create two accounts a1 and a2
Account a1=new account (Name='Test Account');
Account a2=new account (Name='Test Account');
//Add both accounts to the new set
set<Account> acc set = new set <Account > {a1,a2};
system.assertEquals (accset.size(),1);

This statement is used to verify the set only contains one item.

Maps:-

A map is a collection of key-value pairs where each unique key maps to a single value

*Keys can be any primitive datatype while values can be primitive, sobject, collection type or Apex object.

*To declare a map, use the Map keyword followed by the data types of the value within < > characters

            EX:-

Map < string, string> m=new map <string, string> ();
Map<ID, set<string>> m1=new Map<ID, set <string>>();
Map<ID, Map <ID,Account []>> m2=new map<ID,Map<ID,Account[]>>m2;
Similar to lists, map values can contain any collection and can be nested within one another. A map can only contain up to five levels of nested collections inside it.

The following example gives the information about how a map of contain and currencies
Country ---->  Key
currency---> Value
Map<string, string> m= new Map<string> ();
m.put (‘India’, 'Rupee’);
m.put (‘us’, 'Dollar');    Insert a new key value pair in the map
m.put (‘uk’, 'Pounds');
system.debug (m);          the o/p of this line will be
{India= Rupee, us=Dolar, uk= pounds}
string currency = m.get('uk'); àRetrieve a value given a particular key system.debug (currency), à the o/p of this will be pounds
system.debug (m.keyset ()); à Return a set that contains all of the keys in the map.
system.debug (m.containkey ('uk'));

This statement gives the true or false whether for particular key have a value or not.

*   EX:- Account a= new Account (Name=’capital’,Bullingcity=’Hyd’); Map<Integer, Account> map1=new map<integer, Account> (); map1.put (1, a); àInsert a new key value pair in the map Map<Integer, Account >map2=map1.clone ();

###Makes a duplicate copy of the map system.debug ((map1.get (1) Billingcity));

###This statement gives the Billingcity filed value of the value pair that is assigned to the key 1.

Hyd

For indepth understanding on Salesforce click on

Summary
Review Date
Reviewed Item
Collections
Author Rating
5

“At TekSlate, we are trying to create high quality tutorials and articles, if you think any information is incorrect or want to add anything to the article, please feel free to get in touch with us at info@tekslate.com, we will update the article in 24 hours.”

0 Responses on Collections"

Leave a Message

Your email address will not be published. Required fields are marked *

Site Disclaimer, Copyright © 2016 - All Rights Reserved.