Set Class
Namespace
Usage
The Set methods work on a set, that is, an unordered collection of elements that was initialized using the set keyword. Set elements can be of any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types. Set methods are all instance methods, that is, they all operate on a particular instance of a Set. The following are the instance methods for sets.
For more information on sets, see Sets.
Set Constructors
The following are constructors for Set.
Set<T>()
Signature
public Set<T>()
Example
// Create a set of strings
Set<String> s1 = new Set<String>();
// Add two strings to it
s1.add('item1');
s1.add('item2');
Set<T>(setToCopy)
Signature
public Set<T>(Set<T> setToCopy)
Parameters
- setToCopy
- Type: Set<T>
- The set to initialize this set with.
Example
Set<String> s1 = new Set<String>();
s1.add('item1');
s1.add('item2');
Set<String> s2 = new Set<String>(s1);
// The set elements in s2 are copied from s1
System.debug(s2);
Set<T>(listToCopy)
Signature
public Set<T>(List<T> listToCopy)
Parameters
- listToCopy
- Type: Integer
- The list to copy the elements of into this set.
Example
List<Integer> ls = new List<Integer>();
ls.add(1);
ls.add(2);
// Create a set based on a list
Set<Integer> s1 = new Set<Integer>(ls);
// Elements are copied from the list to this set
System.debug(s1);// DEBUG|{1, 2}
Set Methods
The following are methods for Set. All are instance methods.
add(setElement)
Signature
public Boolean add(Object setElement)
Parameters
- setElement
- Type: Object
Return Value
Type: Boolean
Usage
Set<String> myString = new Set<String>{'a', 'b', 'c'};
Boolean result = myString.add('d');
System.assertEquals(true, result);
addAll(fromList)
Signature
public Boolean addAll(List<Object> fromList)
Parameters
- fromList
- Type: List
Usage
This method results in the union of the list and the set. The list must be of the same type as the set that calls the method.
addAll(fromSet)
Signature
public Boolean addAll(Set<Object> fromSet)
Parameters
- fromSet
- Type: Set<Object>
Return Value
Type: Boolean
This method returns true if the original set changed as a result of the call.
Usage
Example
Set<String> myString = new Set<String>{'a', 'b'};
Set<String> sString = new Set<String>{'c'};
Boolean result1 = myString.addAll(sString);
System.assertEquals(true, result1);
clear()
Signature
public Void clear()
Return Value
Type: Void
clone()
Signature
public Set<Object> clone()
Return Value
Type: Set (of same type)
contains(setElement)
Signature
public Boolean contains(Object setElement)
Parameters
- setElement
- Type: Object
Return Value
Type: Boolean
Example
Set<String> myString = new Set<String>{'a', 'b'};
Boolean result = myString.contains('z');
System.assertEquals(false, result);
containsAll(setToCompare)
Signature
public Boolean containsAll(Set<Object> setToCompare)
Parameters
- setToCompare
- Type: Set<Object>
Return Value
Type: Boolean
Example
Set<String> myString = new Set<String>{'a', 'b'};
Set<String> sString = new Set<String>{'c'};
Set<String> rString = new Set<String>{'a', 'b', 'c'};
Boolean result1, result2;
result1 = myString.addAll(sString);
system.assertEquals(true, result1);
result2 = myString.containsAll(rString);
System.assertEquals(true, result2);
equals(set2)
Signature
public Boolean equals(Set<Object> set2)
Parameters
- set2
- Type: Set<Object>
- The set2 argument is the set to compare this set with.
Return Value
Type: Boolean
Usage
Two sets are equal if their elements are equal, regardless of their order. The == operator is used to compare the elements of the sets.
The == operator is equivalent to calling the equals method, so you can call set1.equals(set2); instead of set1 == set2;.
hashCode()
Signature
public Integer hashCode()
Return Value
Type: Integer
isEmpty()
Signature
public Boolean isEmpty()
Return Value
Type: Boolean
Example
Set<Integer> mySet = new Set<Integer>();
Boolean result = mySet.isEmpty();
System.assertEquals(true, result);
remove(setElement)
Signature
public Boolean remove(Object setElement)
Parameters
- setElement
- Type: Object
removeAll(listOfElementsToRemove)
Signature
public Boolean removeAll(List<Object> listOfElementsToRemove)
Parameters
- listOfElementsToRemove
- Type: List<Object>
Usage
This method results in the relative complement of the two sets. The list must be of the same type as the set that calls the method.
Example
Set<integer> mySet = new Set<integer>{1, 2, 3};
List<integer> myList = new List<integer>{1, 3};
Boolean result = mySet.removeAll(myList);
System.assertEquals(true, result);
Integer result2 = mySet.size();
System.assertEquals(1, result2);
removeAll(setOfElementsToRemove)
Signature
public Boolean removeAll(Set<Object> setOfElementsToRemove)
Parameters
- setOfElementsToRemove
- Type: Set<Object>
Return Value
Type: Boolean
This method returns true if the original set changed as a result of the call.
Usage
This method results in the relative complement of the two sets. The specified set must be of the same type as the original set that calls the method.
retainAll(listOfElementsToRetain)
Signature
public Boolean retainAll(List<Object> listOfElementsToRetain)
Parameters
- listOfElementsToRetain
- Type: List<Object>
Return Value
Type: Boolean
This method returns true if the original set changed as a result of the call.
Usage
This method results in the intersection of the list and the set. The list must be of the same type as the set that calls the method.
Example
Set<integer> mySet = new Set<integer>{1, 2, 3};
List<integer> myList = new List<integer>{1, 3};
Boolean result = mySet.retainAll(myList);
System.assertEquals(true, result);
retainAll(setOfElementsToRetain)
Signature
public Boolean retainAll(Set setOfElementsToRetain)
Parameters
- setOfElementsToRetain
- Type: Set
Usage
This method results in the intersection of the two sets. The specified set must be of the same type as the original set that calls the method.
size()
Signature
public Integer size()
Return Value
Type: Integer
Example
Set<Integer> mySet = new Set<Integer>{1, 2, 3};
Set<Integer> retainSet = new Set<Integer>{1, 3};
Boolean result = mySet.retainAll(retainSet);
Assert.isTrue(result, 'Expected to have changed mySet');
Integer retainedSetSize = mySet.size();
Assert.areEqual(2, retainedSetSize);
toString()
Signature
public String toString()
Return Value
Type: String
Usage
- Up to 10 items per collection are included in the output, followed by an ellipsis (…).
- If the same object is included multiple times in a collection, it’s shown in the output only once; subsequent references are shown as (already output).