Returns the element at the specified index.
Returns the element at the specified index. Throws if index is < 0 or >= size.
Returns the number of elements in this chunk.
Splits this chunk in to two chunks at the specified index n
, which is guaranteed to be in-bounds.
Splits this chunk in to two chunks at the specified index n
, which is guaranteed to be in-bounds.
Drops the first n
elements of this chunk.
Left-folds the elements of this chunk.
Invokes the supplied function for each element of this chunk.
Gets the first element of this chunk.
Returns the index of the first element which passes the specified predicate (i.e., p(i) == true
)
or None
if no elements pass the predicate.
True if size is zero, false otherwise.
Gets the last element of this chunk.
Creates a new chunk by applying f
to each element in this chunk.
False if size is zero, true otherwise.
Splits this chunk in to two chunks at the specified index.
Takes the first n
elements of this chunk.
Copies the elements of this chunk to an array.
Converts this chunk to a Chunk.Booleans
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Booleans
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of booleans, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a Chunk.Bytes
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Bytes
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of bytes, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a Chunk.Doubles
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Doubles
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of doubles, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a Chunk.Floats
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Floats
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of doubles, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a Chunk.Ints
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Ints
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of bytes, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a list.
Converts this chunk to a Chunk.Longs
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Longs
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of longs, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a segment.
Converts this chunk to a Chunk.Shorts
, allowing access to the underlying array of elements.
Converts this chunk to a Chunk.Shorts
, allowing access to the underlying array of elements.
If this chunk is already backed by an unboxed array of bytes, this method runs in constant time.
Otherwise, this method will copy of the elements of this chunk in to a single array.
Converts this chunk to a vector.
Strict, finite sequence of values that allows index-based random access of elements.
Chunk
s can be created from a variety of collection types using methods on theChunk
companion (e.g.,Chunk.vector
,Chunk.seq
,Chunk.array
). Additionally, theChunk
companion defines a subtype ofChunk
for each primitive type, using an unboxed primitive array. To work with unboxed arrays, use methods liketoBytes
to convert aChunk[Byte]
to aChunk.Bytes
and then access the array directly.The operations on
Chunk
are all defined strictly. For example,c.map(f).map(g).map(h)
results in intermediate chunks being created (1 per call tomap
). In contrast, a chunk can be lifted to a segment (viatoSegment
) to get arbitrary operator fusion.