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> | slideTo (فهرست طولانی) پنجره را در موقعیت داده شده در بافر اصلی حرکت می دهد. |
روش های عمومی
بافر انتزاعی عمومی 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 آن بر روی offset() + step
تنظیم می شود. اگر step
مثبت باشد، پنجره به جلو می لغزد. اگر منفی باشد، به عقب می لغزد.
پارامترها
گام | مقداری که باید به افست فعلی این پنجره اضافه کنید |
---|
پرتاب می کند
IndexOutOfBoundsException | اگر پنجره نمی تواند لغزنده شود زیرا از محدودیت های بافر اصلی فراتر می رود |
---|
چکیده عمومی DataBufferWindow <B> slideTo (نمایه طولانی)
پنجره را در موقعیت داده شده در بافر اصلی حرکت می دهد.
اندازه پنجره ثابت می ماند و افست آن روی index
تنظیم می شود، به طوری که دسترسی به مقدار buffer()
در شاخص x
مقدار index + x
را در بافر اصلی برمی گرداند.
پارامترها
شاخص | افست جدید برای این پنجره |
---|
پرتاب می کند
IndexOutOfBoundsException | اگر پنجره نمی تواند لغزنده شود زیرا از محدودیت های بافر اصلی فراتر می رود |
---|
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-26 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-26 بهوقت ساعت هماهنگ جهانی."],[],[],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|---------------------------|--------------------------------------------------------------------------------|"]]