Returns the element at the specified index.
Returns the element at the specified index. Throws if index is < 0 or >= size.
Copies the elements of this chunk in to the specified array at the specified start index.
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.
More efficient version of filter(pf.isDefinedAt).map(pf)
.
Drops the first n
elements of this chunk.
Returns a chunk that has only the elements that satisfy the supplied predicate.
Returns the first element for which the predicate returns true or None
if no elements satisfy the predicate.
Maps f
over the elements of this chunk and concatenates the result.
Left-folds the elements of this chunk.
Returns true if the predicate passes for all elements.
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.
Creates an iterator that iterates the elements of this chunk.
Creates an iterator that iterates the elements of this chunk. The returned iterator is not thread safe.
Returns true if this chunk is known to have elements of type B
.
Returns true if this chunk is known to have elements of type B
.
This is determined by checking if the chunk type mixes in Chunk.KnownElementType
.
Gets the last element of this chunk.
Creates a new chunk by applying f
to each element in this chunk.
Maps the supplied stateful function over each element, outputting the final state and the accumulated outputs.
Maps the supplied stateful function over each element, outputting the final state and the accumulated outputs.
The first invocation of f
uses init
as the input state value. Each successive invocation uses
the output state of the previous invocation.
False if size is zero, true otherwise.
Creates an iterator that iterates the elements of this chunk in reverse order.
Creates an iterator that iterates the elements of this chunk in reverse order. The returned iterator is not thread safe.
Like foldLeft
but emits each intermediate result of f
.
Like scanLeft
except the final element is emitted as a standalone value instead of as
the last element of the accumulated chunk.
Like scanLeft
except the final element is emitted as a standalone value instead of as
the last element of the accumulated chunk.
Equivalent to val b = a.scanLeft(z)(f); val (c, carry) = b.splitAt(b.size - 1)
.
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 java.nio.ByteBuffer
.
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 chain.
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 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.
Zips this chunk the the supplied chunk, returning a chunk of tuples.
Zips this chunk with the supplied chunk, passing each pair to f
, resulting in
an output chunk.
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
).