Buffer
Mutable indexed buffer abstraction.
All modifications happens in-place.
All modifications happens in-place.
In addition, the Buffer API offers both Stack- and List-like interfaces.
For the purpose of the List-like processing,
the head is a top element in the buffer.
For the purpose of the List-like processing,
the head is a top element in the buffer.
- Companion
- object
class ArrayBuffer[T]
trait ArrayBufferLike[T]
class ByteBuffer
class DeferredArrayBuffer[T]
class IntBuffer
Document{}
Updates value at the provided index using the function.
Index must fall within range [0,length).
Index must fall within range [0,length).
- Value Params
- index
-
value's index
- map
-
map function
- Throws
- IndexOutOfBoundsException
- IndexOutOfBoundsException
@inline
Updates in-place all values in the range [0,length) using the function.
- Value Params
- f
-
map function
@inline
Iterable representing lazily mapped values of this buffer at the time of access.
- Value Params
- f
-
map function
Updates all accepted values in the range [0,length) using the function.
- Value Params
- map
-
map function
- pred
-
filter function
Updates values in the range [startIndex,toIndex)^^[0,length) using the function.
One of {startIndex,toIndex} must fall within range [0,length).
One of {startIndex,toIndex} must fall within range [0,length).
- Value Params
- fromIndex
-
index of the first value inclusive
- map
-
map function
- toIndex
-
index of the last value exclusive
- Throws
- IndexOutOfBoundsException
- IndexOutOfBoundsException
Updates values in the range [startIndex,toIndex)^^[0,length) using the function.
One of {startIndex,toIndex} must fall within range [0,length).
One of {startIndex,toIndex} must fall within range [0,length).
- Value Params
- fromIndex
-
index of the first value inclusive
- map
-
map function
- pred
-
filter function
- toIndex
-
index of the last value exclusive
- Throws
- IndexOutOfBoundsException
- IndexOutOfBoundsException
@inline
Appends number of values from the given iterator at the end of the buffer and advances topIndex.
Shift current content to the right starting from
and copies array chunk into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
index
at the insertLength
distance,and copies array chunk into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
Shift current content to the right starting from
and copies slice into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
index
at the slice.length
distance,and copies slice into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
Shift current content to the right starting from
iterates over the source indexes and copies values into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
index
at the insertLength
distance,iterates over the source indexes and copies values into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
Inserts iterated values into the gap made by shiftjng buffer right, starting from the index.
- Sets topIndex to be at least at the end of the new chunk of values.
- Sets topIndex to be at least at the end of the new chunk of values.
Inserts iterated values, in the reverse order, into the gap made by shiftjng buffer right, starting from the index.
- Sets topIndex to be at least at the end of the new chunk of values.
- Sets topIndex to be at least at the end of the new chunk of values.
Shift current content to the right starting from
and inserts iterated values into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
index
at the min(iterator.length, insertLength)
distance,and inserts iterated values into the gap.
- Sets topIndex to be at least at the end of the new chunk of values.
Shift current content to the right starting from
and inserts iterated values into the gap in the reverse order.
- Sets topIndex to be at least at the end of the new chunk of values.
index
at the min(iterator.length, insertLength)
distance,and inserts iterated values into the gap in the reverse order.
- Sets topIndex to be at least at the end of the new chunk of values.
def replaceFromArray(index: Int, sourceIndex: Int, replaceLength: Int, sourceArray: Array[T]): Buffer
Replaces current values in the range [index, index + replaceLength)
with values of the array range [sourceIndex, sourceIndex + replaceLength).
with values of the array range [sourceIndex, sourceIndex + replaceLength).
final def replaceValues(index: Int, sourceIndex: Int, numberOfValues: Int, source: Int => T): Buffer
Replaces current values in the range [index, index + replaceLength) with values returned by the function
when iterating argument in the range [sourceIndex, sourceIndex + replaceLength).
when iterating argument in the range [sourceIndex, sourceIndex + replaceLength).
Replaces current values in the range [index, index + min(iterator.length, replaceLength) )
with values returned from the iterator.
with values returned from the iterator.
final def replaceFromIteratorReverse(index: Int, numberOfValues: Int, iterator: Iterator[T]): Buffer
Replaces current values in the range [index, index + min(iterator.length, replaceLength))
with values returned from the iterator in the reverse order.
with values returned from the iterator in the reverse order.
@inline
Removes values in the range [fromIndex, toIndex) and shifts content in [toIndex, length) to the left.
Moves values in [index, length) right to [index+distance, length + distance).
Effectively creates a new range [index, index+distance).
- Ignores negative distance.
- Does not clear existing values inside [index, index+distance).
- Moves topIndex if affected.
Effectively creates a new range [index, index+distance).
- Ignores negative distance.
- Does not clear existing values inside [index, index+distance).
- Moves topIndex if affected.
Moves values in [index, length) left to [index-distance, length - distance).
Effectively removes range (index-distance, index]
.
- Ignores negative distance.
- Moves topIndex if affected.
- Ignores negative distance.
- Moves topIndex if affected.
Moves values in [fromIndex, toIndex) to the right at a distance,
to become [fromIndex + distance, toIndex + distance),
and moves left any existing values in [toIndex, toIndex + distance)
to become [fromIndex, fromIndex + distance).
- Ignores negative distance.
- Does nothing if fromIndex > topIndex.
- Moves topIndex if affected.
to become [fromIndex + distance, toIndex + distance),
and moves left any existing values in [toIndex, toIndex + distance)
to become [fromIndex, fromIndex + distance).
- Ignores negative distance.
- Does nothing if fromIndex > topIndex.
- Moves topIndex if affected.
Moves values in [fromIndex, toIndex) to the left at a distance,
to become [fromIndex - distance, toIndex - distance),
and moves right any existing values in [fromIndex - distance, fromIndex)
to become [toIndex, toIndex + distance).
- Ignores negative distance.
- Does nothing if fromIndex > topIndex.
- Moves topIndex if affected.
to become [fromIndex - distance, toIndex - distance),
and moves right any existing values in [fromIndex - distance, fromIndex)
to become [toIndex, toIndex + distance).
- Ignores negative distance.
- Does nothing if fromIndex > topIndex.
- Moves topIndex if affected.
Swap two values at the provided indexes.
Value at
- Does nothing if any index falls outside [0,length) or if indexes are equal.
Value at
first
becomes value at second
, and vice versa.- Does nothing if any index falls outside [0,length) or if indexes are equal.
Swap values in range [first, first + swapLength) with values in range [second, second + swapLength)
- Does nothing if any index falls outside [0,length) or if indexes are equal.
- if [first, first + swapLength) overlaps with [second, second + swapLength)
then the later overwrites the former.
- Does nothing if any index falls outside [0,length) or if indexes are equal.
- if [first, first + swapLength) overlaps with [second, second + swapLength)
then the later overwrites the former.
Returns an iterator over actual buffer values,
starting from the zero index up.
starting from the zero index up.
- Note
- does not copy buffer values,