Skip to content

RaggedArray


final class RaggedArray<Type>

Two-dimensional array where each row has a varying length. Internally, this is stored in one contiguous array for constant-time random access.

  • Type: Element type. Must be default-constructible.

Member Variables

Name Description
values:Type[_] Elements.
offsets:Integer[_] Offset into values for each row.
sizes:Integer[_] Number of columns in each row.

Member Functions

Name Description
empty Is this empty?
clear Clear all rows.
count Number of elements.
size Number of rows.
size Number of elements for a given row.
get Get an element.
get Get a row.
set Set an element.
set Set a row.
popFront Remove the front row.
popFront Remove the front element from a specified row.
pushBack Add a new row at the back.
pushBack Add an element to the back of a specified row.
pushBack Add a new default-constructed element to the back of the specified row, and return the element.
walk Obtain an iterator over rows.
walk Obtain an iterator over columns.
from First serial index of a row.
to Last serial index of a row.
serial Serial index of row and column.

Member Function Details

clear

function clear()

Clear all rows.

count

function count() -> Integer

Number of elements.

empty

function empty() -> Boolean

Is this empty? A RaggedArray is considered empty if it has no rows. A RaggedArray with one or more rows is not considered empty, even if those rows have no elements.

from

function from(i:Integer) -> Integer

First serial index of a row.

  • i: Row.

get

function get(i:Integer, j:Integer) -> Type

Get an element.

  • i: Row.
  • j: Column.

function get(i:Integer) -> Type[_]

Get a row.

  • i: Row.

popFront

function popFront()

Remove the front row.

function popFront(i:Integer)

Remove the front element from a specified row.

  • i: Row.

pushBack

function pushBack()

Add a new row at the back.

function pushBack(i:Integer, x:Type)

Add an element to the back of a specified row.

  • i: Row.
  • x: Value.

function pushBack(i:Integer) -> Type

Add a new default-constructed element to the back of the specified row, and return the element.

serial

function serial(i:Integer, j:Integer) -> Integer

Serial index of row and column.

  • i: Row.
  • j: Column.

set

function set(i:Integer, j:Integer, x:Type)

Set an element.

  • i: Row.
  • j: Column.
  • x: Value.

function set(i:Integer, x:Type[_])

Set a row.

  • i: Row.
  • x: Values.

The number of columns in the row must match the number of columns in x.

size

function size() -> Integer

Number of rows.

function size(i:Integer) -> Integer

Number of elements for a given row.

  • i: Row.

to

function to(i:Integer) -> Integer

Last serial index of a row.

  • i: Row.

walk

function walk() -> Iterator<Type[_]>

Obtain an iterator over rows.

Return: an iterator across entire rows from top to bottom.

function walk(i:Integer) -> Iterator<Type>

Obtain an iterator over columns.

  • i: Row.

Return: an iterator across the elements of the given row, from left to right.