ListSet<T> class
A ListSet is, at the same time:
When viewed as a Set and compared to a LinkedHashSet, a ListSet is also ordered and has a similar performance. But a ListSet takes less memory and can be sorted, just like a list. Also, you can directly get its items by index. The disadvantage, of course, is that ListSet has a fixed size, while a LinkedHashSet does not.
The ListSet is efficient both as a List and as a Set. So, for example, it has an efficient sort method, while a LinkedHashSet would force you to turn it into a List, then sort it, than turn it back into a Set.
- Implemented types
- Implementers
- Available extensions
Constructors
- ListSet.empty()
- ListSet.fromJson(dynamic json, T fromJsonT(Object?))
-
Converts from JSon. Json serialization support for json_serializable with @JsonSerializable.
factory
-
ListSet.of(Iterable<
T> items, {bool sort = false, int compare(T a, T b)?}) -
Create a ListSet from the
items
iterable.
Properties
- first ↔ T
-
The first element.
getter/setter pairoverride
- hashCode → int
-
The hash code for this object.
no setterinherited
- isEmpty → bool
-
Whether this collection has no elements.
no setteroverride
- isNotEmpty → bool
-
Whether this collection has at least one element.
no setteroverride
-
iterator
→ Iterator<
T> -
An iterator that iterates over the elements of this set.
no setteroverride
- last ↔ T
-
The last element.
getter/setter pairoverride
- length ↔ int
-
The number of elements in this Iterable.
getter/setter pairoverride
-
reversed
→ Iterable<
T> -
An Iterable of the objects in this list in reverse order.
no setteroverride
-
reversedView
→ ListSet<
T> -
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- single → T
-
Checks that this iterable has only one element, and returns that element.
no setteroverride
Methods
-
add(
T value) → bool -
Adds
value
to the set.override -
addAll(
Iterable< T> elements) → void -
Adds all
elements
to this set.override -
any(
Predicate< T> test) → bool -
Checks whether any element of this iterable satisfies
test
.override -
asMap(
) → Map< int, T> -
An unmodifiable Map view of this list.
override
-
cast<
E> () → ListSet< E> -
Provides a view of this set as a set of
R
instances.override -
clear(
) → void -
Removes all elements from the set.
override
-
contains(
covariant T? value) → bool -
Whether
value
is in the set.override -
containsAll(
covariant Iterable< T?> other) → bool -
Whether this set contains all the elements of
other
.override -
difference(
covariant Set< T?> other) → Set<T> -
Creates a new set with the elements of this that are not in
other
.override -
elementAt(
int index) → T -
Returns the
index
th element.override -
every(
Predicate< T> test) → bool -
Checks whether every element of this iterable satisfies
test
.override -
expand<
E> (Iterable< E> f(T element)) → Iterable<E> -
Expands each element of this Iterable into zero or more elements.
override
-
fillRange(
int start, int end, [T? fillValue]) → void -
Overwrites a range of elements with
fillValue
.override -
firstWhere(
Predicate< T> test, {T orElse()?}) → T -
The first element that satisfies the given predicate
test
.override -
fold<
E> (E initialValue, E combine(E previousValue, T element)) → E -
Reduces a collection to a single value by iteratively combining each
element of the collection with an existing value
override
-
followedBy(
Iterable< T> other) → Iterable<T> -
Creates the lazy concatenation of this iterable and
other
.override -
forEach(
void f(T element)) → void -
Invokes
action
on each element of this iterable in iteration order.override -
getRange(
int start, int end) → Iterable< T> -
Creates an Iterable that iterates over a range of elements.
override
-
indexOf(
T element, [int start = 0]) → int -
The first index of
element
in this list.override -
indexWhere(
Predicate< T> test, [int start = 0]) → int -
The first index in the list that satisfies the provided
test
.override -
insert(
int index, T element) → void -
Inserts
element
at positionindex
in this list.override -
insertAll(
int index, Iterable< T> iterable) → void -
Inserts all objects of
iterable
at positionindex
in this list.override -
intersection(
covariant Set< T?> other) → Set<T> -
Creates a new set which is the intersection between this set and
other
.override -
join(
[String separator = ""]) → String -
Converts each element to a String and concatenates the strings.
override
-
lastIndexOf(
T element, [int? start]) → int -
The last index of
element
in this list.override -
lastIndexWhere(
Predicate< T> test, [int? start]) → int -
The last index in the list that satisfies the provided
test
.override -
lastWhere(
Predicate< T> test, {T orElse()?}) → T -
The last element that satisfies the given predicate
test
.override -
lookup(
Object? object) → T? -
If an object equal to
object
is in the set, return it.override -
map<
E> (E f(T e)) → Iterable< E> -
The current elements of this iterable modified by
toElement
.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reduce(
T combine(T value, T element)) → T -
Reduces a collection to a single value by iteratively combining elements
of the collection using the provided function.
override
-
remove(
Object? value) → bool -
Removes
value
from the set.override -
removeAll(
Iterable< Object?> elements) → void -
Removes each element of
elements
from this set.override -
removeAt(
int index) → T -
Removes the object at position
index
from this list.override -
removeLast(
) → T -
Removes and returns the last object in this list.
override
-
removeRange(
int start, int end) → void -
Removes a range of elements from the list.
override
-
removeWhere(
Predicate< T> test) → void -
Removes all elements of this set that satisfy
test
.override -
replaceRange(
int start, int end, Iterable< T> replacement) → void -
Replaces a range of elements with the elements of
replacements
.override -
retainAll(
Iterable< Object?> elements) → void -
Removes all elements of this set that are not elements in
elements
.override -
retainWhere(
Predicate< T> test) → void -
Removes all elements of this set that fail to satisfy
test
.override -
setAll(
int index, Iterable< T> iterable) → void -
Overwrites elements with the objects of
iterable
.override -
setRange(
int start, int end, Iterable< T> iterable, [int skipCount = 0]) → void -
Writes some elements of
iterable
into a range of this list.override -
shuffle(
[Random? random]) → void -
Shuffles the elements of this list randomly.
override
-
singleWhere(
Predicate< T> test, {T orElse()?}) → T -
The single element that satisfies
test
.override -
skip(
int count) → Iterable< T> -
Creates an Iterable that provides all but the first
count
elements.override -
skipWhile(
bool test(T value)) → Iterable< T> -
Creates an
Iterable
that skips leading elements whiletest
is satisfied.override -
sort(
[int compare(T a, T b)?]) → void -
Sorts this list according to the order specified by the
compare
function.override -
sublist(
int start, [int? end]) → List< T> -
Returns a new list containing the elements between
start
andend
.override -
take(
int count) → Iterable< T> -
Creates a lazy iterable of the
count
first elements of this iterable.override -
takeWhile(
bool test(T value)) → Iterable< T> -
Creates a lazy iterable of the leading elements satisfying
test
.override -
toJson(
Object? toJsonT(T)) → Object - Converts to JSon. Json serialization support for json_serializable with @JsonSerializable.
-
toList(
{bool growable = true}) → List< T> -
Creates a List containing the elements of this Iterable.
override
-
toSet(
) → Set< T> -
Creates a Set with the same elements and behavior as this
Set
.override -
toString(
) → String -
A string representation of this object.
inherited
-
union(
covariant Set< T> other) → Set<T> -
Creates a new set which contains all the elements of this set and
other
.override -
where(
Predicate< T> test) → Iterable<T> -
Creates a new lazy Iterable with all elements that satisfy the
predicate
test
.override -
whereType<
E> () → Iterable< E> -
Creates a new lazy Iterable with all elements that have type
T
.override
Operators
-
operator +(
List< T> other) → ListSet<T> -
Returns the concatenation of this list and
other
.override -
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
int index) → T -
The object at the given
index
in the list.override -
operator []=(
int index, T value) → void -
Sets the value at the given
index
in the list tovalue
.override
Static Methods
-
unsafeView<
T> (Set< T> set) → ListSet<T> -
Creates a ListSet form the given
set
. If theset
is already of type ListSet, return the same instance. This is unsafe because a ListSetView is fixed size, but the givenset
may not.