Abstract implementation of a list.
ListBase can be used as a base class for implementing the List
interface.
This class implements all read operations using only the length and
operator[] and members. It implements write operations using those and
add, length= and operator[]=
Classes using this base class should implement those five operations.
NOTICE: For backwards compatibility reasons,
there is a default implementation of add
which only works for lists with a nullable element type.
For list with a non-nullable element type,
the add method must be implemented.
NOTICE: Forwarding just the four length and [] read/write operations
to a normal growable List (as created by a [] literal)
will give very bad performance for add and addAll operations
of ListBase.
These operations are implemented by
increasing the length of the list by one for each add operation,
and repeatedly increasing the length of a growable list is not efficient.
To avoid this, override 'add' and 'addAll' to also forward directly
to the growable list, or, if possible, use DelegatingList from
"package:collection/collection.dart" instead of a ListMixin.
- Implemented types
-
- List<
E>
- List<
- Implementers
- Available extensions
Constructors
- ListBase.new()
-
const
Properties
- first ↔ E
-
The first element.
getter/setter pairoverride
- firstOrNull → T?
-
Available on Iterable<
The first element of this iterator, orT> , provided by the IterableExtensions extensionnullif the iterable is empty.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
-
indexed
→ Iterable<
(int, T)> -
Available on Iterable<
Pairs of elements of the indices and elements of this iterable.T> , provided by the IterableExtensions extensionno setter - isEmpty → bool
-
Whether this collection has no elements.
no setteroverride
- isNotEmpty → bool
-
Whether this collection has at least one element.
no setteroverride
-
iterator
→ Iterator<
E> -
A new
Iteratorthat allows iterating the elements of thisIterable.no setteroverride - last ↔ E
-
The last element.
getter/setter pairoverride
- lastOrNull → T?
-
Available on Iterable<
The last element of this iterable, orT> , provided by the IterableExtensions extensionnullif the iterable is empty.no setter - length ↔ int
-
The number of objects in this list.
getter/setter pairinherited
-
nonNulls
→ Iterable<
T> -
Available on Iterable<
The non-T?> , provided by the NullableIterableExtensions extensionnullelements of this iterable.no setter -
reversed
→ Iterable<
E> -
An Iterable of the objects in this list in reverse order.
no setteroverride
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- single → E
-
Checks that this iterable has only one element, and returns that element.
no setteroverride
- singleOrNull → T?
-
Available on Iterable<
The single element of this iterator, orT> , provided by the IterableExtensions extensionnull.no setter -
toJS
→ JSArray<
T> -
Available on List<
Converts this List to a JSArray by either casting, unwrapping, or cloning the List.T> , provided by the ListToJSArray extensionno setter -
toJSProxyOrRef
→ JSArray<
T> -
Available on List<
Converts this List to a JSArray by either casting, unwrapping, or proxying the List.T> , provided by the ListToJSArray extensionno setter -
wait
→ Future<
List< T> > -
Available on Iterable<
Waits for futures in parallel.Future< , provided by the FutureIterable extensionT> >no setter
Methods
-
add(
E element) → void -
Adds
valueto the end of this list, extending the length by one.override -
addAll(
Iterable< E> iterable) → void -
Appends all objects of
iterableto the end of this list.override -
any(
bool test(E element)) → bool -
Checks whether any element of this iterable satisfies
test.override -
asMap(
) → Map< int, E> -
An unmodifiable Map view of this list.
override
-
asNameMap(
) → Map< String, T> -
Available on Iterable<
Creates a map from the names of enum values to the values.T> , provided by the EnumByName extension -
byName(
String name) → T -
Available on Iterable<
Finds the enum value in this list with nameT> , provided by the EnumByName extensionname. -
cast<
R> () → List< R> -
Returns a view of this list as a list of
Rinstances.override -
clear(
) → void -
Removes all objects from this list; the length of the list becomes zero.
override
-
contains(
Object? element) → bool -
Whether the collection contains an element equal to
element.override -
elementAt(
int index) → E -
Returns the
indexth element.override -
elementAtOrNull(
int index) → T? -
Available on Iterable<
The element at positionT> , provided by the IterableExtensions extensionindexof this iterable, ornull. -
every(
bool test(E element)) → bool -
Checks whether every element of this iterable satisfies
test.override -
expand<
T> (Iterable< T> f(E element)) → Iterable<T> -
Expands each element of this Iterable into zero or more elements.
override
-
fillRange(
int start, int end, [E? fill]) → void -
Overwrites a range of elements with
fillValue.override -
firstWhere(
bool test(E element), {E orElse()?}) → E -
The first element that satisfies the given predicate
test.override -
fold<
T> (T initialValue, T combine(T previousValue, E element)) → T -
Reduces a collection to a single value by iteratively combining each
element of the collection with an existing value
override
-
followedBy(
Iterable< E> other) → Iterable<E> -
Creates the lazy concatenation of this iterable and
other.override -
forEach(
void action(E element)) → void -
Invokes
actionon each element of this iterable in iteration order.override -
getRange(
int start, int end) → Iterable< E> -
Creates an Iterable that iterates over a range of elements.
override
-
indexOf(
Object? element, [int start = 0]) → int -
The first index of
elementin this list.override -
indexWhere(
bool test(E element), [int start = 0]) → int -
The first index in the list that satisfies the provided
test.override -
insert(
int index, E element) → void -
Inserts
elementat positionindexin this list.override -
insertAll(
int index, Iterable< E> iterable) → void -
Inserts all objects of
iterableat positionindexin this list.override -
join(
[String separator = ""]) → String -
Converts each element to a String and concatenates the strings.
override
-
lastIndexOf(
Object? element, [int? start]) → int -
The last index of
elementin this list.override -
lastIndexWhere(
bool test(E element), [int? start]) → int -
The last index in the list that satisfies the provided
test.override -
lastWhere(
bool test(E element), {E orElse()?}) → E -
The last element that satisfies the given predicate
test.override -
map<
T> (T f(E element)) → Iterable< T> -
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(
E combine(E previousValue, E element)) → E -
Reduces a collection to a single value by iteratively combining elements
of the collection using the provided function.
override
-
remove(
Object? element) → bool -
Removes the first occurrence of
valuefrom this list.override -
removeAt(
int index) → E -
Removes the object at position
indexfrom this list.override -
removeLast(
) → E -
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(
bool test(E element)) → void -
Removes all objects from this list that satisfy
test.override -
replaceRange(
int start, int end, Iterable< E> newContents) → void -
Replaces a range of elements with the elements of
replacements.override -
retainWhere(
bool test(E element)) → void -
Removes all objects from this list that fail to satisfy
test.override -
setAll(
int index, Iterable< E> iterable) → void -
Overwrites elements with the objects of
iterable.override -
setRange(
int start, int end, Iterable< E> iterable, [int skipCount = 0]) → void -
Writes some elements of
iterableinto a range of this list.override -
shuffle(
[Random? random]) → void -
Shuffles the elements of this list randomly.
override
-
singleWhere(
bool test(E element), {E orElse()?}) → E -
The single element that satisfies
test.override -
skip(
int count) → Iterable< E> -
Creates an Iterable that provides all but the first
countelements.override -
skipWhile(
bool test(E element)) → Iterable< E> -
Creates an
Iterablethat skips leading elements whiletestis satisfied.override -
sort(
[int compare(E a, E b)?]) → void -
Sorts this list according to the order specified by the
comparefunction.override -
sublist(
int start, [int? end]) → List< E> -
Returns a new list containing the elements between
startandend.override -
take(
int count) → Iterable< E> -
Creates a lazy iterable of the
countfirst elements of this iterable.override -
takeWhile(
bool test(E element)) → Iterable< E> -
Creates a lazy iterable of the leading elements satisfying
test.override -
toList(
{bool growable = true}) → List< E> -
Creates a List containing the elements of this Iterable.
override
-
toSet(
) → Set< E> -
Creates a Set containing the same elements as this iterable.
override
-
toString(
) → String -
A string representation of this object.
override
-
where(
bool test(E element)) → Iterable< E> -
Creates a new lazy Iterable with all elements that satisfy the
predicate
test.override -
whereType<
T> () → Iterable< T> -
Creates a new lazy Iterable with all elements that have type
T.override
Operators
-
operator +(
List< E> other) → List<E> -
Returns the concatenation of this list and
other.override -
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
int index) → E -
The object at the given
indexin the list.inherited -
operator []=(
int index, E value) → void -
Sets the value at the given
indexin the list tovalue.inherited