ImmutableCardSet class
An efficient equivalent expression to Set<Card>
.
ImmutableCardSet is more efficient type when you want to express a Set<Card>
value because ImmutableCardSet internally holds elements in a sum of int values. You can do any operation that Set<Card>
has.
final cardSet = ImmutableCardSet({ Card(Rank.ace, Suit.spade), Card(Rank.queen, Suit.heart) });
cardSet.contains(Card(Rank.ace, Suit.spade)); // => true
cardSet.containsAll([Card(Rank.ace, Suit.spade), Card(Rank.queen, Suit.heart)]); // => true
cardSet.containsAll([Card(Rank.ace, Suit.spade), Card(Rank.king, Suit.club)]); // => false
Since ImmutableCardSet holds elements as sum of int, you can compare two different ImmutableCardSet by ==
without performance concern.
ImmutableCardSet({ Card(Rank.ace, Suit.spade), Card(Rank.queen, Suit.heart) }) == Card(Rank.ace, Suit.spade), Card(Rank.queen, Suit.heart); // => true
ImmutableCardSet({ Card(Rank.ace, Suit.spade), Card(Rank.queen, Suit.heart) }) == Card(Rank.king, Suit.club), Card(Rank.jack, Suit.diamond); // => false
- Mixed in types
- Implementers
- Available Extensions
- Annotations
-
- @immutable
Constructors
- ImmutableCardSet.empty()
-
An empty ImmutableCardSet.
const
- ImmutableCardSet.full()
-
A full-deck ImmutableCardSet.
const
-
ImmutableCardSet.of(Iterable<
Card> cards) -
Creates a ImmutableCardSet from a
Iterable<Card>
. - ImmutableCardSet.parse(String value)
-
Parses a String to create a ImmutableCardSet.
factory
Properties
- first → Card
-
The first element.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setteroverride
- isEmpty → bool
-
Whether this collection has no elements.
no setterinherited
- isNotEmpty → bool
-
Whether this collection has at least one element.
no setterinherited
-
iterator
→ Iterator<
Card> -
A new
Iterator
that allows iterating the elements of thisIterable
.no setteroverride - last → Card
-
The last element.
no setterinherited
- length → int
-
The number of elements in this.
no setteroverride
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- single → Card
-
Checks that this iterable has only one element, and returns that element.
no setterinherited
Methods
-
added(
Card card) → ImmutableCardSet -
addedAll(
ImmutableCardSet other) → ImmutableCardSet -
any(
bool test(Card element)) → bool -
Checks whether any element of this iterable satisfies
test
.inherited -
cast<
R> () → Iterable< R> -
A view of this iterable as an iterable of
R
instances.inherited -
contains(
Object? element) → bool -
Whether the collection contains an element equal to
element
.override -
containsAll(
ImmutableCardSet other) → bool -
elementAt(
int index) → Card -
Returns the
index
th element.inherited -
every(
bool test(Card element)) → bool -
Checks whether every element of this iterable satisfies
test
.inherited -
expand<
T> (Iterable< T> toElements(Card element)) → Iterable<T> -
Expands each element of this Iterable into zero or more elements.
inherited
-
firstWhere(
bool test(Card element), {Card orElse()?}) → Card -
The first element that satisfies the given predicate
test
.inherited -
fold<
T> (T initialValue, T combine(T previousValue, Card element)) → T -
Reduces a collection to a single value by iteratively combining each
element of the collection with an existing value
inherited
-
followedBy(
Iterable< Card> other) → Iterable<Card> -
Creates the lazy concatenation of this iterable and
other
.inherited -
forEach(
void action(Card element)) → void -
Invokes
action
on each element of this iterable in iteration order.inherited -
join(
[String separator = ""]) → String -
Converts each element to a String and concatenates the strings.
inherited
-
lastWhere(
bool test(Card element), {Card orElse()?}) → Card -
The last element that satisfies the given predicate
test
.inherited -
map<
T> (T toElement(Card e)) → Iterable< T> -
The current elements of this iterable modified by
toElement
.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reduce(
Card combine(Card value, Card element)) → Card -
Reduces a collection to a single value by iteratively combining elements
of the collection using the provided function.
inherited
-
removed(
Card card) → ImmutableCardSet -
removedAll(
ImmutableCardSet other) → ImmutableCardSet -
singleWhere(
bool test(Card element), {Card orElse()?}) → Card -
The single element that satisfies
test
.inherited -
skip(
int count) → Iterable< Card> -
Creates an Iterable that provides all but the first
count
elements.inherited -
skipWhile(
bool test(Card value)) → Iterable< Card> -
Creates an
Iterable
that skips leading elements whiletest
is satisfied.inherited -
take(
int count) → Iterable< Card> -
Creates a lazy iterable of the
count
first elements of this iterable.inherited -
takeWhile(
bool test(Card value)) → Iterable< Card> -
Creates a lazy iterable of the leading elements satisfying
test
.inherited -
toList(
{bool growable = true}) → List< Card> -
Creates a List containing the elements of this Iterable.
inherited
-
toSet(
) → Set< Card> -
Creates a Set containing the same elements as this iterable.
inherited
-
toString(
) → String -
Returns a string representation of (some of) the elements of
this
.inherited -
where(
bool test(Card element)) → Iterable< Card> -
Creates a new lazy Iterable with all elements that satisfy the
predicate
test
.inherited -
whereType<
T> () → Iterable< T> -
Creates a new lazy Iterable with all elements that have type
T
.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override