APEX Introduction
It is Object oriented programming language that is used to provide custom code to create business logic and database operation.
APEX is also used to create salesforce triggers that will work automatically , before and after database operation(Insert, Update, Delete).
Apex provide SOQL and SOSL to manage database operation.
📘 Apex Arrays & Collections – Complete Tutorial
1. Introduction
In Apex, data structures are very important because Salesforce apps often deal with records, lists, and sets of data. Apex provides Collections to store and manipulate groups of values or objects.
👉 Collections in Apex:
-
List (like an Array in Java/C#)
-
Set
-
Map
⚡ Note: Unlike Java/C#, there is no fixed-length array in Apex. Instead, List<T> is used as a dynamic array.
2. Arrays in Apex (List<T>)
What is an Array?
An Array (or List) is an ordered collection of elements, indexed starting at 0. You can store primitive types (Integer, String, Boolean), sObjects (Account, Contact, etc.), or custom objects inside it.
Syntax:
Example with Integers:
Output
Shortcut Declaration:
Important Methods in List:
Method | Description | Example |
---|---|---|
add(value) | Add element | list.add(50); |
add(index,value) | Insert at position | list.add(1,100); |
get(index) | Get element | list.get(0); |
set(index,value) | Replace element | list.set(1,200); |
size() | Number of elements | list.size(); |
isEmpty() | Checks if empty | list.isEmpty(); |
remove(index) | Remove element | list.remove(0); |
clear() | Remove all | list.clear(); |
contains(value) | Check existence | list.contains('Mango'); |
clone() | Copy list | List<String> copy = fruits.clone(); |
List of sObjects Example:
3. Set in Apex
What is Set?
-
Unordered collection of unique elements.
-
Prevents duplicates.
-
Useful in scenarios like removing duplicate IDs, filtering data, etc.
Example:
Important Methods:
-
add(value)
-
addAll(list/set)
-
remove(value)
-
contains(value)
-
size()
-
isEmpty()
-
clear()
4. Map in Apex
What is Map?
-
A key-value pair collection.
-
Keys are unique, values can be duplicate.
-
Think of it like a dictionary in Python or HashMap in Java.
Example:
Map with sObjects:
5. Real-Time Example (Mixing Collections)
👉 Scenario: You want to fetch all Contacts of Accounts and organize them.
SOQL means salesforce Object Query Language and SOSL means salesforce object search language,
APEX language syntax is similar to Java programming language, it will compile and execute code using Apex cloud compiler.
Salesforce provide developer option to create APEX class and execute option to execute APEX Code.
Syntax of Apex
public class Classname{
public static retuntype Methodname() {
}
public retuntype Methodname() {
}
}
Execute Apex code:-
Classname ref = new Classname();
ref.methodname();
Static method means it will store data under class memory that's why it would be call by Classname.
Instance Method means dynamic, it will store data under external memory space that's why first we create memory space using object after that we can call method.
to create dynamic memory space, we will create object.
Classname ref = new Classname(); // it is the syntax object.
ref means address of object, new means memory allocation and Classname() is the constructor that is used to create the memory space.
Now I am creating sample program to differentiate static and dynamic
public class Hello {
public static void DisplayHello()
{
System.debug('hello world');
}
public void DisplayHello1()
{
System.debug('welcome in salesforce');
}
}
Press Ctrl + e to open execute window and write followings code.
Hello.DisplayHello();
Hello obj = new Hello();
obj.DisplayHello1();
Now i am creating another program to perform addition and subtraction in APEX class, where addition method is static and subtraction method is dynamic.
Solution:-
public class Operation {
static integer a,b,c;
integer x,y,z;
public static void add()
{
a=100;
b=200;
c=a+b;
System.debug('result is '+c);
}
public void sub()
{
x=100;
y=200;
z=x-y;
System.debug('result is '+z);
}
}
Execute this program:-
Operation.add();
Operation obj = new Operation();
obj.sub();
Assignment:-
1) Manage Employee Information with empid, empname, job, salary, joingdate, experience, dateofbirth with respective data type.
public class Employee {
private integer empid;
private string empname;
private string job;
private integer salary;
private double experience;
private date dob;
private date joiningdate;
public void Accept(integer empid,string empname,string job,integer salary,double experience,date dob,date joiningdate)
{
this.empid=empid;
this.empname=empname;
this.job=job;
this.salary=salary;
this.experience=experience;
this.dob=dob;
this.joiningdate=joiningdate;
}
public void Display()
{
System.debug('empid is '+empid + ' name is '+empname + ' job is '+job + 'salary is '+salary + 'experience is '+experience + ' dob is '+dob + ' Joining date is '+ joiningdate);
}
}
How to call it:-
Employee obj = new Employee();
obj.Accept(1001,'emp1','cleark',45000,2.5d,date.valueOf('1992-12-12'),date.valueOf('1992-12-12'));
obj.Display();
2) Calculate Simple Interest using APEX Class
3) WAP to swap two different numbers?
SOSL Query:
🔹 1️⃣ Search by Exact Keyword in All Fields
🔍 Searches for the word “Lucknow” anywhere in all searchable fields of Branch__c
.
🔹 2️⃣ Search by Prefix (Wildcard at End)
🔍 Finds all Accounts whose Name starts with “Acc” (like “Accenture”, “AccountPro”).
🔹 3️⃣ Search by Suffix (Wildcard at Start)
🔍 Finds records ending with “tech” (like “Innotech”, “Hightech”).
🔹 4️⃣ Search by Exact Phrase
🔍 Finds Contacts whose Title or other text fields contain the exact phrase “Sales Manager”.
🔹 5️⃣ Search Using Logical Operators
🔍 Returns all employees who have either “Developer” or “Tester” in searchable fields.
🔹 6️⃣ Search Across Multiple Objects
🔍 Searches Delhi in Branch__c
, Account
, and Contact
— all at once.
🔹 7️⃣ Limit and Order Results
🔍 Returns top 5 matching courses and top 3 students.
🔹 8️⃣ Use SOSL with Apex Variable (Bind Variable)
🔍 Uses a dynamic variable searchKey
in Apex.
🔹 9️⃣ Use Wildcard to Return “All” Records with Text
🔍 Returns all Branch__c records that contain any text in searchable fields.
🔹 🔟 Use FIND with Specific Field Scope
🔍 Searches only email fields for the given email address.
🧩 Bonus — Combined Example in Apex
What is Group by & Having in SOQL:
🧠
Quick Summary of Common Scopes
Scope | Description |
---|---|
IN ALL FIELDS | Searches all searchable fields |
IN NAME FIELDS | Only in name-type fields (Account.Name, Contact.Name) |
IN EMAIL FIELDS | Only email fields |
IN PHONE FIELDS | Only phone fields |
IN SIDEBAR FIELDS | Same as global search scope |
Read about What is Salesforce?
0 Comments
POST Answer of Questions and ASK to Doubt