DataBufferWindow
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Известные косвенные подклассы |
Изменяемый контейнер для просмотра части DataBuffer
.
Окна буфера данных имеют фиксированный размер и могут "slide"
по буферу, обеспечивая различные представления данных без выделения нового экземпляра буфера, как это делает offset(long)
. Это повышает общую производительность при частом повторении этой операции. Например:
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;
}
}
Экземпляры DataBufferWindow
имеют состояние и не являются потокобезопасными.
Публичные методы
аннотация Б | буфер () Возвращает буфер, поддерживающий это окно. |
абстрактный длинный | компенсировать () Возвращает текущее смещение этого окна в исходном буфере. |
абстрактный длинный | размер () Возвращает размер этого буферного окна. |
абстрактное окно DataBufferWindow <B> | слайд (длинный шаг) Перемещает окно элементов step в исходный буфер. |
абстрактное окно DataBufferWindow <B> | слайдTo (длинный индекс) Перемещает окно в заданную позицию в исходном буфере. |
Публичные методы
общедоступный абстрактный буфер B ()
Возвращает буфер, поддерживающий это окно.
Каждый экземпляр окна имеет собственный буфер, обеспечивающий просмотр исходного DataBuffer
. Буферы изменяются, когда окно перемещается на разные смещения. Например:
IntDataBuffer buffer = DataBuffers.of(0, 1, 2, 3);
DataBufferWindow<IntDataBuffer> window = buffer.window(0, 2);
IntDataBuffer windowBuffer = window.buffer();
assertEquals(0, windowBuffer.getInt(0));
assertEquals(1, windowBuffer.getInt(1));
window.slideTo(2);
assertEquals(2, windowBuffer.getInt(0));
assertEquals(3, windowBuffer.getInt(1));
assertSame(windowBuffer, window.buffer());
публичное абстрактное длинное смещение ()
Возвращает текущее смещение этого окна в исходном буфере.
публичный абстрактный длинный размер ()
Возвращает размер этого буферного окна.
общедоступный абстрактный слайд DataBufferWindow <B> (длинный шаг)
Перемещает окно элементов step
в исходный буфер.
Размер окна остается прежним, а его смещение устанавливается на offset() + step
. Если step
положительный, то окно сдвинется вперед. Если он отрицательный, он будет скользить назад.
Параметры
шаг | значение, которое нужно добавить к текущему смещению этого окна |
---|
Броски
Индексаутофбаундсисключение | если окно нельзя сдвинуть, поскольку оно выходит за пределы исходного буфера |
---|
общедоступный абстрактный DataBufferWindow <B> слайдTo (длинный индекс)
Перемещает окно в заданную позицию в исходном буфере.
Размер окна остается прежним, а его смещение установлено на index
, так что доступ к значению buffer()
по индексу x
вернет значение по index + x
в исходном буфере.
Параметры
индекс | новое смещение для этого окна |
---|
Броски
Индексаутофбаундсисключение | если окно нельзя сдвинуть, поскольку оно выходит за пределы исходного буфера |
---|
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-26 UTC.
[null,null,["Последнее обновление: 2025-07-26 UTC."],[],[],null,["# DataBufferWindow\n\npublic interface **DataBufferWindow** \n\n|---|---|---|\n| Known Indirect Subclasses [AbstractDataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/impl/buffer/AbstractDataBufferWindow)\\\u003cB extends [DataBuffer](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBuffer)\\\u003c?\\\u003e\\\u003e |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---| | [AbstractDataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/impl/buffer/AbstractDataBufferWindow)\\\u003cB extends [DataBuffer](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBuffer)\\\u003c?\\\u003e\\\u003e | | |||\n\nA mutable container for viewing part of a [DataBuffer](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBuffer).\n\nData buffer windows have a fixed size and can [\"slide\"](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#slide(long))\nalong a buffer to provide different views of the data without allocating a new buffer instance,\nlike [offset(long)](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBuffer#offset(long)) does. This improves overall performance when this operation\nis repeated frequently. For example:\n\n IntDataBuffer bufferA = DataBuffers.ofInts(1024);\n // ... init buffer data\n IntDataBuffer bufferB = DataBuffers.ofInts(1, 2, 3, 4);\n\n // Return the index of the first occurrence of bufferB in bufferA using a sliding window\n DataBufferWindow\u003cIntDataBuffer\u003e windowA = bufferA.window(4);\n for (int i = 0; i \u003c bufferA.size() - bufferB.size(); ++i) {\n if (windowA.slideTo(i).buffer().equals(bufferB)) {\n return i;\n \n }\n }\n\n`DataBufferWindow` instances are stateful and not thread-safe.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n### Public Methods\n\n|-----------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| abstract B | [buffer](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#buffer())() Returns the buffer backing this window. |\n| abstract long | [offset](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#offset())() Returns the current offset of this window in the original buffer. |\n| abstract long | [size](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#size())() Returns the size of this buffer window. |\n| abstract [DataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow)\\\u003cB\\\u003e | [slide](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#slide(long))(long step) Moves the window of `step` elements in the original buffer. |\n| abstract [DataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow)\\\u003cB\\\u003e | [slideTo](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#slideTo(long))(long index) Moves the window at the given position in the original buffer. |\n\nPublic Methods\n--------------\n\n#### public abstract B\n**buffer**\n()\n\nReturns the buffer backing this window.\n\nEach window instance has it's own buffer providing a view onto the original\n[DataBuffer](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBuffer). The buffers are mutated when the window slides to different offsets.\nFor example:\n\n IntDataBuffer buffer = DataBuffers.of(0, 1, 2, 3);\n DataBufferWindow\u003cIntDataBuffer\u003e window = buffer.window(0, 2);\n\n IntDataBuffer windowBuffer = window.buffer();\n assertEquals(0, windowBuffer.getInt(0));\n assertEquals(1, windowBuffer.getInt(1));\n\n window.slideTo(2);\n assertEquals(2, windowBuffer.getInt(0));\n assertEquals(3, windowBuffer.getInt(1));\n assertSame(windowBuffer, window.buffer());\n \n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n##### Returns\n\n- this window's buffer \n\n#### public abstract long\n**offset**\n()\n\nReturns the current offset of this window in the original buffer. \n\n#### public abstract long\n**size**\n()\n\nReturns the size of this buffer window. \n\n#### public abstract [DataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow)\\\u003cB\\\u003e\n**slide**\n(long step)\n\nMoves the window of `step` elements in the original buffer.\n\nThe size of the window remains the same and its offset is set to `offset() + step`.\nIf `step` is positive, then the window will slide forward. If it is negative, it will\nslide backward.\n\n\u003cbr /\u003e\n\n##### Parameters\n\n| step | value to add to the current offset of this window |\n|------|---------------------------------------------------|\n\n##### Returns\n\n- this instance \n\n##### Throws\n\n| IndexOutOfBoundsException | if the window cannot be slid because it goes beyond the original buffer limits |\n|---------------------------|--------------------------------------------------------------------------------|\n\n#### public abstract [DataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow)\\\u003cB\\\u003e\n**slideTo**\n(long index)\n\nMoves the window at the given position in the original buffer.\n\nThe size of the window remains the same and its offset is set to `index`, so that\naccessing the value of [buffer()](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow#buffer()) at index `x` will return the value at\n`index + x` in the original buffer.\n\n\u003cbr /\u003e\n\n##### Parameters\n\n| index | new offset for this window |\n|-------|----------------------------|\n\n##### Returns\n\n- this instance \n\n##### Throws\n\n| IndexOutOfBoundsException | if the window cannot be slid because it goes beyond the original buffer limits |\n|---------------------------|--------------------------------------------------------------------------------|"]]