^title List Class
Extends Sequence.
An indexable contiguous collection of elements. More details here.
Creates a new list with size
elements, all set to element
.
It is a runtime error if size
is not a nonnegative integer.
Creates a new empty list. Equivalent to []
.
Appends item
to the end of the list.
Removes all elements from the list.
The number of elements in the list.
Returns the index of value
in the list, if found. If not found, returns -1.
var list = [0, 1, 2, 3, 4] System.print(list.indexOf(3)) //> 3 System.print(list.indexOf(20)) //> -1
Inserts the item
at index
in the list.
var list = ["a", "b", "c", "d"] list.insert(1, "e") System.print(list) //> [a, e, b, c, d]
The index
may be one past the last index in the list to append an element.
var list = ["a", "b", "c"] list.insert(3, "d") System.print(list) //> [a, b, c, d]
If index
is negative, it counts backwards from the end of the list. It bases this on the length of the list after inserted the element, so that -1
will append the element, not insert it before the last element.
var list = ["a", "b"] list.insert(-1, "d") list.insert(-2, "c") System.print(list) //> [a, b, c, d]
Returns the inserted item.
System.print(["a", "c"].insert(1, "b")) //> b
It is a runtime error if the index is not an integer or is out of bounds.
Implements the iterator protocol for iterating over the elements in the list.
Removes the element at index
. If index
is negative, it counts backwards
from the end of the list where -1
is the last element. All trailing elements
are shifted up to fill in where the removed element was.
var list = ["a", "b", "c", "d"] list.removeAt(1) System.print(list) //> [a, c, d]
Returns the removed item.
System.print(["a", "b", "c"].removeAt(1)) //> b
It is a runtime error if the index is not an integer or is out of bounds.
Sorts the elements of a list in-place; altering the list. The default sort is implemented using the quicksort algorithm.
var list = [4, 1, 3, 2].sort() System.print(list) //> [1, 2, 3, 4]
A comparison function comparer
can be provided to customise the element sorting. The comparison function must return a boolean value specifying the order in which elements should appear in the list.
The comparison function accepts two arguments a
and b
, two values to compare, and must return a boolean indicating the inequality between the arguments. If the function returns true, the first argument a
will appear before the second b
in the sorted results.
A compare function like {|a, b| true }
will always put a
before b
. The default compare function is {|a, b| a < b }
.
var list = [9, 6, 8, 7] list.sort {|a, b| a < b} System.print(list) //> [6, 7, 8, 9]
It is a runtime error if comparer
is not a function.
Gets the element at index
. If index
is negative, it counts backwards from
the end of the list where -1
is the last element.
var list = ["a", "b", "c"] System.print(list[1]) //> b
It is a runtime error if the index is not an integer or is out of bounds.
Replaces the element at index
with item
. If index
is negative, it counts
backwards from the end of the list where -1
is the last element.
var list = ["a", "b", "c"] list[1] = "new" System.print(list) //> [a, new, c]
It is a runtime error if the index is not an integer or is out of bounds.
Appends a list to the end of the list (concatenation). other
must be a List
.
var letters = ["a", "b", "c"] var other = ["d", "e", "f"] var combined = letters + other System.print(combined) //> [a, b, c, d, e, f]