rules. Set
Set type.
A set is an unordered collection. A set cannot contain duplicate items.
There is no set literal for use in creating sets. Instead, create sets from
lists using List.toSet(). See rules.List.
// Create a set and check its size ['a','b'].toSet().size() == 2
In addition to the methods listed below, sets have the following operators:
| Operator | Usage |
|---|---|
x == y |
Compare sets x and y |
v in x |
Check if value v exists in set x. For example: 'a' in ['a','b'].toSet() == true |
Methods
difference
difference() returns rules.Set
Returns a set that is the difference between the set calling
difference() and the set passed to difference().
That is, returns a set containing the elements in the
comparison set that are not in the specified set.
If the sets are identical, returns an empty set (size() == 0).
- Returns
-
non-null rules.Setdifference set containing the elements found in the comparison set that are not gound in the calling set.
Example
['a','b'].toSet().difference(['a','c'].toSet()) == ['b'].toSet()hasAll
hasAll() returns rules.Boolean
Test whether the set calling hasAll() contains all of the items
in the comparison set passed to hasAll().
- Returns
-
non-null rules.Booleanwhether the calling set contains all the items of the comparison set or list.
Example
['a','b'].toSet().hasAll(['a','c']) == false
['d','e','f'].toSet().hasAll(['d','e']) == truehasAny
hasAny() returns rules.Boolean
Test whether the set calling hasAny() contains any of the items
in the set or list passed to hasAny().
- Returns
-
non-null rules.Booleanwhether the calling set contains any of the items of the comparison set or list.
Example
['a','b'].toSet().hasAny(['c','d'].toSet()) == false
['a','b'].toSet().hasAny(['a','c'].toSet()) == truehasOnly
hasOnly() returns rules.Boolean
Test whether the set calling hasOnly() contains only the items
in the comparison set or list passed to hasOnly().
- Returns
-
non-null rules.Booleanwhether the calling set contains only the items of the comparison set or list.
Example
['a','b'].toSet().hasOnly(['a','c']) == false
['a','b'].toSet().hasOnly(['a','b']) == trueintersection
intersection() returns rules.Set
Returns a set that is the intersection between the set calling
intersection() and the set passed to
intersection(). That is, returns a set containing the elements
the sets have in common.
If the sets have no elements in common, returns an empty set
(size() == 0).
- Returns
-
non-null rules.Setintersection set containing the elements found in both the calling set and the comparison set.
Example
['a','b'].toSet().intersection(['a','c'].toSet()) == ['a'].toSet()size
size() returns rules.Integer
Returns the size of the set.
- Returns
-
non-null rules.Integerthe number of values in the specified set.
union
union() returns rules.Set
Returns a set that is the union of the set calling union() and
the set passed to union(). That is, returns a set that contains
all elements from both sets.
- Returns
-
non-null rules.Setunion set containing all of the elements in both the calling set and comparison set.
Example
['a','b'].toSet().union(['a','c'].toSet()) == ['a', 'b', 'c'].toSet()