Interface IntDataBuffer
- All Superinterfaces:
DataBuffer<Integer>
DataBuffer of ints.-
Method Summary
Modifier and TypeMethodDescriptioncopyTo(DataBuffer<Integer> dst, long size) Write the references of the objects in the source array into this buffer.intgetInt(long index) Reads the int at the given index.default IntegergetObject(long index) Reads the value at the given index.default IntDataBuffernarrow(long size) Creates a new buffer whose content is a shared subsequence of this buffer's content, whose size is set to the given value.default IntDataBufferoffset(long index) Creates a new buffer whose content is a shared subsequence of this buffer's content, starting at the given index.default IntDataBufferread(int[] dst) Bulk get method, using int arrays.read(int[] dst, int offset, int length) Bulk get method, using int arrays.setInt(int value, long index) Writes the given int into this buffer at the given index.default IntDataBufferWrites the given value into this buffer at the given index.slice(long index, long size) Creates a new buffer whose content is a shared subsequence of this buffer's content, starting at the given index and of the given size.default DataBufferWindow<IntDataBuffer> window(long size) Creates aDataBufferWindowthat provides a partial view of this buffer.default IntDataBufferwrite(int[] src) Bulk put method, using int arrays.write(int[] src, int offset, int length) Bulk put method, using int arrays.Methods inherited from interface DataBuffer
accept, equals, isReadOnly, read, read, size, write, write
-
Method Details
-
getInt
int getInt(long index) Reads the int at the given index.- Parameters:
index- the index from which the float will be read- Returns:
- the int at the given index
- Throws:
IndexOutOfBoundsException- if index is negative or not smaller than the buffer size
-
setInt
Writes the given int into this buffer at the given index.- Parameters:
value- the int to be writtenindex- the index at which the value will be written- Returns:
- this buffer
- Throws:
IndexOutOfBoundsException- if index is negative or not smaller than the buffer sizeReadOnlyBufferException- if this buffer is read-only
-
read
Bulk get method, using int arrays.This method transfers values from this buffer into the given destination array. If there are fewer values in the buffer than are required to satisfy the request, that is, if
dst.length > size(), then no values are transferred and a BufferUnderflowException is thrown.Otherwise, this method copies
n = dst.lengthvalues from this buffer into the given array.- Parameters:
dst- the array into which values are to be written- Returns:
- this buffer
- Throws:
BufferUnderflowException- if there are not enough values to copy from this buffer
-
read
Bulk get method, using int arrays.This method transfers values from this buffer into the given destination array. If there are fewer values in the buffer than are required to satisfy the request, that is, if
length > size(), then no values are transferred and a BufferUnderflowException is thrown.Otherwise, this method copies
n = lengthvalues from this buffer into the given array starting at the given offset.- Parameters:
dst- the array into which values are to be writtenoffset- the offset within the array of the first value to be written; must be non-negative and no larger thandst.lengthlength- the maximum number of values to be written to the given array; must be non-negative and no larger thandst.length - offset- Returns:
- this buffer
- Throws:
BufferUnderflowException- if there are fewer than length values remaining in this bufferIndexOutOfBoundsException- if the preconditions on the offset and length parameters do not hold
-
write
Bulk put method, using int arrays.This method transfers the values in the given source array into this buffer. If there are more values in the source array than in this buffer, that is, if
src.length > size(), then no values are transferred and a BufferOverflowException is thrown.Otherwise, this method copies
n = src.lengthvalues from the given array.- Parameters:
src- the source array from which values are to be read- Returns:
- this buffer
- Throws:
BufferOverflowException- if there is insufficient space in this buffer for the values in the source arrayReadOnlyBufferException- if this buffer is read-only
-
write
Bulk put method, using int arrays.This method transfers the values in the given source array into this buffer. If there are more values in the source array than in this buffer, that is, if
length > size(), then no values are transferred and a BufferOverflowException is thrown.Otherwise, this method copies
n = lengthvalues from the given array into this buffer, starting at the given offset.- Parameters:
src- the source array from which values are to be readoffset- the offset within the array of the first value to be read; must be non-negative and no larger thansrc.lengthlength- the number of values to be read from the given array; must be non-negative and no larger thansrc.length - offset- Returns:
- this buffer
- Throws:
BufferOverflowException- if there is insufficient space in this buffer for the values in the source arrayIndexOutOfBoundsException- if the preconditions on the offset and length parameters do not holdReadOnlyBufferException- if this buffer is read-only
-
getObject
Description copied from interface:DataBufferReads the value at the given index. Important: Usage of this method should be limited to buffers of non-primitive types or when the data type is not deterministically known by the caller. In any other case, prefer the usage of its primitive variant which will significantly improve performances (e.g.IntDataBuffer.getInt(idx)- Specified by:
getObjectin interfaceDataBuffer<Integer>- Parameters:
index- the index from which the float will be read- Returns:
- the value at the given index
-
setObject
Description copied from interface:DataBufferWrites the given value into this buffer at the given index. Important: Usage of this method should be limited to buffers of non-primitive types or when the data type is not deterministically known by the caller. In any other case, prefer the usage of its primitive variant which will significantly improve performances (e.g.IntDataBuffer.setInt(idx)- Specified by:
setObjectin interfaceDataBuffer<Integer>- Parameters:
value- the value to be writtenindex- the index at which the value will be written- Returns:
- this buffer
-
copyTo
Description copied from interface:DataBufferWrite the references of the objects in the source array into this buffer.If there are more values to copy than the destination buffer size, i.e.
size > dst.size(), then no values are transferred and a BufferOverflowException is thrown. On the other hand, if there are more values to copy that the source buffer size, i.e.> src.size(), then a BufferUnderfloatException is thrown.Otherwise, this method copies
n = sizevalues from this buffer into the destination buffer.- Specified by:
copyToin interfaceDataBuffer<Integer>- Parameters:
dst- the destination buffer into which values are copied; must not be this buffersize- number of values to copy to the destination buffer- Returns:
- this buffer
-
offset
Description copied from interface:DataBufferCreates a new buffer whose content is a shared subsequence of this buffer's content, starting at the given index.The index must not be greater than this buffer size. Changes to this buffer's content will be visible in the new buffer and vice versa. The new buffer will be read-only if, and only if, this buffer is read-only.
This call is equivalent to
slice(index, size() - index)- Specified by:
offsetin interfaceDataBuffer<Integer>- Parameters:
index- index of the first value of the new buffer created, must not be greater thansize()- Returns:
- the new buffer
-
narrow
Description copied from interface:DataBufferCreates a new buffer whose content is a shared subsequence of this buffer's content, whose size is set to the given value.The new size must not be greater than this buffer size. Changes to this buffer's content will be visible in the new buffer and vice versa. The new buffer will be read-only if, and only if, this buffer is read-only.
This call is equivalent to
slice(0, size)- Specified by:
narrowin interfaceDataBuffer<Integer>- Parameters:
size- size of this new buffer- Returns:
- the new buffer
-
slice
Description copied from interface:DataBufferCreates a new buffer whose content is a shared subsequence of this buffer's content, starting at the given index and of the given size.The index plus the new size must not be greater than this buffer size. Changes to this buffer's content will be visible in the new buffer and vice versa. The new buffer will be read-only if, and only if, this buffer is read-only.
- Specified by:
slicein interfaceDataBuffer<Integer>- Parameters:
index- index of the first value of the new buffer createdsize- size of this new buffer, must not be greater thansize()- Returns:
- the new buffer
-
window
Description copied from interface:DataBufferCreates aDataBufferWindowthat provides a partial view of this buffer.The created window has a fixed size and can
"slide"along this buffer to provide different views of the data without allocating a new buffer instance, likeDataBuffer.offset(long)does. This improves overall performance when this operation is repeated frequently. For example:IntDataBuffer bufferA = DataBuffers.ofInts(1024); // ... init buffer data IntDataBuffer bufferB = DataBuffers.ofInts(1, 2, 3, 4); // Return the index of the first occurrence of bufferB in bufferA using a sliding window DataBufferWindow<IntDataBuffer> windowA = bufferA.window(4); for (int i = 0; i < bufferA.size() - bufferB.size(); ++i) { if (windowA.slideTo(i).buffer().equals(bufferB)) { return i; } }The returned object is stateful and is not thread-safe.
- Specified by:
windowin interfaceDataBuffer<Integer>- Parameters:
size- size of the window- Returns:
- a new window that starts at the index 0 of this buffer
-