ListVec<T> extension

A contiguous growable array type, written as Vec

on

Methods

append(List<T> other) → void
Adds all of other's elements to this Vec.
dedup() → void
Removes consecutive repeated elements in the vector according to ==. If the vector is sorted, this removes all duplicates.
dedupBy(bool f(T a, T b)) → void
Removes all but the first of consecutive elements in the vector satisfying a given equality relation. If the vector is sorted, this removes all duplicates.
dedupByKey<K>(K f(T)) → void
Removes all but the first of consecutive elements in the vector for which the given predicate returns true. If the vector is sorted, this removes all duplicates.
drain(int start, int end) List<T>
Removes the element at the given index from the Vec and returns it.
extendFromSlice(Slice<T> slice) → void
Appends all elements in a slice to the Vec.
extendFromWithin(int start, int end) → void
extractIf(bool f(T)) RIterator<T>
Creates an RIterator which uses a closure to determine if an element should be removed. If the closure returns true, then the element is removed and yielded. If the closure returns false, the element will remain in the vector and will not be yielded by the iterator.
firstOrOption() Option<T>
Returns the first element of an iterator, None if empty.
iter() RIterator<T>
lastOrOption() Option<T>
Returns the last element of an iterator, None if empty.
len() int
insert: Already implemented by list Returns the length of the Vec.
pop() Option<T>
Removes the last element from the Vec and returns it, or None if it is empty.
push(T element) → void
Appends an element to the end of the Vec.
resize(int newLen, T value) → void
Resizes the Vec in-place so that len is equal to newLen. If newLen is greater than len, the Vec is extended by the difference, with each additional slot filled with value. If new_len is less than len, the Vec is simply truncated.
resizeWith(int newLen, T f()) → void
Resizes the Vec in-place so that len is equal to newLen. If newLen is greater than len, the Vec is extended by the difference, with each additional slot filled with the result of f. If new_len is less than len, the Vec is simply truncated.
retain(bool f(T)) → void
Retains only the elements specified by the predicate where the result is true.
singleOrOption() Option<T>
Returns the single element of an iterator, None if this is empty or has more than one element.
splice(int start, int end, Iterable<T> replaceWith) Vec<T>
Creates a splicing iterator that replaces the specified range in the vector with the given replaceWith iterator and yields the removed items. replace_with does not need to be the same length as range.
splitOff(int at) Vec<T>
Splits the collection into two at the given index. Returns a newly allocated vector containing the elements in the range [at, len). After the call, the original vector will be left containing the elements [0, at).
swapRemove(int index) → T
Removes an element from the vector and returns it. The removed element is replaced by the last element of the vector.
truncate(int newLen) → void
Shortens the vector, keeping the first len elements and dropping the rest.