ListSet<T> class

A ListSet is, at the same time:

  1. A mutable, fixed-sized, ordered, Set.
  2. A mutable, fixed-sized, List, in which values can't repeat.

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.
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 indexth 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 position index in this list.
override
insertAll(int index, Iterable<T> iterable) → void
Inserts all objects of iterable at position index 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 while test 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 and end.
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 to value.
override

Static Methods

unsafeView<T>(Set<T> set) ListSet<T>
Creates a ListSet form the given set. If the set is already of type ListSet, return the same instance. This is unsafe because a ListSetView is fixed size, but the given set may not.