Slice<T> class final

A contiguous sequence of elements in a List. Slices are a view into a list without allocating and copying to a new list, as such, they do not own their own data. Note: Shrinking the original list can cause the slices range to become invalid, which may cause an exception.

Implemented types
Available extensions

Constructors

Slice.new(List<T> _list, int _start, int _end)
Slice.fromList(List<T> list)
Slice.fromSlice(Slice<T> slice, [int start = 0, int end = -1])

Properties

first → T
The first element.
no setteroverride
firstOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The first element of this iterator, or null if the iterable is empty.
no setter
firstOrOption Option<T>
no setter
hashCode int
The hash code for this object.
no setteroverride
indexed Iterable<(int, T)>

Available on Iterable<T>, provided by the IterableExtensions extension

Pairs of elements of the indices and elements of this iterable.
no 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<T>
A new Iterator that allows iterating the elements of this Iterable.
no setteroverride
last → T
Returns the last element of the slice, can throw.
no setteroverride
lastOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The last element of this iterable, or null if the iterable is empty.
no setter
lastOrOption Option<T>
Returns the last element of the slice, or None if it is empty.
no setter
length int
The number of elements in this Iterable.
no setteroverride
nonNulls Iterable<T>

Available on Iterable<T?>, provided by the NullableIterableExtensions extension

The non-null elements of this iterable.
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
singleOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The single element of this iterator, or null.
no setter
wait Future<List<T>>

Available on Iterable<Future<T>>, provided by the FutureIterable extension

Waits for futures in parallel.
no setter

Methods

any(bool f(T)) bool
Checks whether any element of this iterable satisfies test.
override
asNameMap() Map<String, T>

Available on Iterable<T>, provided by the EnumByName extension

Creates a map from the names of enum values to the values.
byName(String name) → T

Available on Iterable<T>, provided by the EnumByName extension

Finds the enum value in this list with name name.
cast<U>() RIterator<U>
A view of this iterable as an iterable of R instances.
override
contains(Object? element) bool
Whether the collection contains an element equal to element.
override
copyFromSlice(Slice<T> src) → void
Copies the elements from src into self. The length of src must be the same as self.
elementAt(int index) → T
Returns the indexth element.
override
elementAtOrNull(int index) → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The element at position index of this iterable, or null.
endsWith(Slice<T> needle) bool
Returns true if needle is a suffix of the slice.
every(bool f(T)) bool
Checks whether every element of this iterable satisfies test.
override
expand<U>(Iterable<U> f(T)) RIterator<U>
Expands each element of this Iterable into zero or more elements.
override
fill(T value) → void
Fills this slice with value.
fillWith(T f()) → void
Fills this slice with the value return by calling f repeatedly.
firstWhere(bool f(T), {T orElse()?}) → T
The first element that satisfies the given predicate test.
override
fold<U>(U initialValue, U f(U previousValue, T element)) → U
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
override
followedBy(Iterable<T> other) RIterator<T>
Creates the lazy concatenation of this iterable and other.
override
forEach(void f(T)) → void
Invokes action on each element of this iterable in iteration order.
override
get(int index) Option<T>
getMany(List<int> indices) Result<Arr<T>, GetManyError>
Returns mutable references to many indices at once. Returns an error if any index is out-of-bounds.
getManyUnchecked(List<int> indices) Arr<T>
Returns mutable references to many indices at once, without doing any checks.
getUnchecked(int index) → dynamic
Returns the element at the given index without doing bounds checking.
groupBy(bool compare(T, T)) RIterator<Slice<T>>
Returns an %iterator over the slice producing non-overlapping runs of elements using the predicate to separate them.
isSorted() bool

Available on Slice<T>, provided by the SliceOnSliceIntExtension extension

Checks if the elements of this slice are sorted. That is, for each element a and its following element b, a <= b must hold.
isSorted() bool

Available on Slice<T>, provided by the SliceOnComparableSliceExtension extension

Checks if the elements of this slice are sorted. That is, for each element a and its following element b, a <= b must hold.
isSortedBy(Comparator<T> compare) bool
Checks if the elements of this slice are sorted using the given comparator function.
isSortedByKey<K extends Comparable<K>>(K key(T)) bool
Checks if the elements of this slice are sorted using the given key extraction function.
iter() RIterator<T>
iter() RIterator<T>

Available on Iterable<T>, provided by the IterableExtension extension

Returns an RIterator over the Iterable.
join([String separator = '']) String
Converts each element to a String and concatenates the strings.
override
lastWhere(bool f(T), {T orElse()?}) → T
The last element that satisfies the given predicate test.
override
len() int
Returns the length of the slice.
map<U>(U f(T)) RIterator<U>
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 f(T, T)) → T
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
override
reverse() → void
Reverses the order of elements in the slice, in place.
rsplit(bool pred(T)) RIterator<Slice<T>>
Returns an iterator over subslices separated by elements that match pred, starting at the end of the slice and working backwards. The matched element is not contained in the subslices.
rsplitAt(int index) → (Slice<T>, Slice<T>)
Divides one slice into a slice and a remainder slice at an index from the end. The slice will contain all indices from [0, len - N) (excluding the index N itself) and the second slice will contain all indices from [len - N, len) (excluding the index len itself).
rsplitOnce(bool pred(T)) Option<(Slice<T>, Slice<T>)>
Splits the slice on the last element that matches the specified predicate. If any matching elements are resent in the slice, returns the prefix before the match and suffix after. The matching element itself is not included. If no elements match, returns None.
singleWhere(bool f(T), {T orElse()?}) → T
The single element that satisfies test.
override
skip(int count) RIterator<T>
Creates an Iterable that provides all but the first count elements.
override
skipWhile(bool f(T)) RIterator<T>
Creates an Iterable that skips leading elements while test is satisfied.
override
sortUnstable() → void

Available on Slice<T>, provided by the SliceOnSliceIntExtension extension

Sorts the slice, but might not preserve the order of equal elements.
sortUnstable() → void

Available on Slice<T>, provided by the SliceOnComparableSliceExtension extension

Sorts the slice, but might not preserve the order of equal elements.
sortUnstableBy(int compare(T a, T b)) → void
Sorts the slice with a comparator function, but might not preserve the order of equal elements.
sortUnstableByKey<K extends Comparable<K>>(K key(T a)) → void
Sorts the slice with a key extraction function, but might not preserve the order of equal elements.
split(bool pred(T)) RIterator<Slice<T>>
Returns an iterator over subslices separated by elements that match pred. The matched element is not contained in the subslices. see splitInclusive also.
splitAt(int index) → (Slice<T>, Slice<T>)
Divides one mutable slice into a slice and a remainder slice at an index. The slice will contain all indices from [0, N) (excluding the index N itself) and the second slice will contain all indices from [N, len) (excluding the index len itself).
splitFirst() Option<(T, Slice<T>)>
Returns the first and all the rest of the elements of the slice, or None if it is empty.
splitInclusive(bool pred(T)) RIterator<Slice<T>>
Returns an iterator over subslices separated by elements that match pred. The matched element is contained in the end of the previous subslice as a terminator. see split also.
splitLast() Option<(T, Slice<T>)>
Returns the last and all the rest of the elements of the slice, or None if it is empty.
splitn(int n, bool pred(T)) RIterator<Slice<T>>
Returns an iterator over subslices separated by elements that match pred, limited to returning at most n items. e.g. n == 1 will return the whole slice. The matched element is not contained in the subslices. The last element returned, if any, will contain the remainder of the slice.
splitOnce(bool pred(T)) Option<(Slice<T>, Slice<T>)>
Splits the slice on the first element that matches the specified predicate. If any matching elements are resent in the slice, returns the prefix before the match and suffix after. The matching element itself is not included. If no elements match, returns None.
startsWith(Slice<T> needle) bool
Returns true if needle is a prefix of the slice.
stripPrefix(Slice<T> prefix) Option<Slice<T>>
Returns a subslice with the prefix removed. Returns none if the prefix is not present.
stripSuffix(Slice<T> suffix) Option<Slice<T>>
swap(int i, int j) → void
Swaps two elements in the slice. Will throw if the indices are out of bounds.
swapWithSlice(Slice<T> other) → void
Swaps all elements in this with those in other. The length of other must be the same as this. Will throw if the length of other is not the same as this.
take(int count) RIterator<T>
Creates a lazy iterable of the count first elements of this iterable.
override
takeEnd(int from) Option<Slice<T>>
Returns a new slice of this slice from the end, and removes those elements from this slice. Returns None and does not modify the slice if the given range is out of bounds.
takeFirst() Option<T>
takeLast() Option<T>
takeStart(int to) Option<Slice<T>>
Returns a new slice of this slice until to, and removes those elements from this slice. Returns None and does not modify the slice if the given range is out of bounds.
takeWhile(bool f(T)) RIterator<T>
Creates a lazy iterable of the leading elements satisfying test.
override
toArr() Arr<T>

Available on Iterable<T>, provided by the ArrayOnIterableExtension extension

Creates an Array from an Iterable
toList({bool growable = true}) List<T>
growable is ignore, always returns a growable list.
override
toResult() FutureResult<List<S>, List<F>>

Available on Iterable<FutureResult<S, F>>, provided by the IterableFutureResultExtensions extension

Transforms an Iterable of FutureResults into a single result where the ok value is the list of all successes and err value is a list of all failures. The order of S and F is determined by the order in the List.
toResult() Result<List<S>, List<F>>

Available on Iterable<Result<S, F>>, provided by the IterableResultExtensions extension

Transforms an Iterable of results into a single result where the ok value is the list of all successes and err value is a list of all failures.
toResultEager() FutureResult<List<S>, F>

Available on Iterable<FutureResult<S, F>>, provided by the IterableFutureResultExtensions extension

Transforms an Iterable of FutureResults into a single result where the ok value is the list of all successes. If any error is encountered, the first error is used as the error result. The order of S and F is determined by the order in which futures complete.
toResultEager() Result<List<S>, F>

Available on Iterable<Result<S, F>>, provided by the IterableResultExtensions extension

Transforms an Iterable of results into a single result where the ok value is the list of all successes. If any error is encountered, the first error is used as the error result.
toSet() Set<T>
Creates a Set containing the same elements as this iterable.
override
toString() String
A string representation of this object.
override
where(bool f(T)) RIterator<T>
Creates a new lazy Iterable with all elements that satisfy the predicate test.
override
whereType<U>() RIterator<U>
Creates a new lazy Iterable with all elements that have type T.
override
windows(int size) RIterator<Slice<T>>

Operators

operator ==(Object other) bool
The equality operator.
override
operator [](int index) → T
operator []=(int index, T value) → void