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 buffer ()
מחזיר את המאגר המגבה את החלון הזה.
לכל מופע חלון יש מאגר משלו המספק תצוגה על ה- 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());
תקציר ציבורי ארוך היסט ()
מחזירה את ההיסט הנוכחי של חלון זה במאגר המקורי.
תקציר ציבורי בגודל ארוך ()
מחזירה את גודל חלון המאגר הזה.
מזיז את חלון step
במאגר המקורי.
גודל החלון נשאר זהה וההיסט שלו מוגדר ל- offset() + step
. אם step
חיובי, החלון יחליק קדימה. אם הוא שלילי, הוא יחליק לאחור.
פרמטרים
שָׁלָב | ערך להוסיף לקיזוז הנוכחי של חלון זה |
---|
זורק
IndexOutOfBoundsException | אם לא ניתן להחליק את החלון מכיוון שהוא חורג מגבולות המאגר המקוריים |
---|
תקציר ציבורי DataBufferWindow <B> slideTo (אינדקס ארוך)
מזיז את החלון במיקום הנתון במאגר המקורי.
גודל החלון נשאר זהה וההיסט שלו מוגדר ל- index
, כך שגישה לערך של buffer()
באינדקס x
תחזיר את הערך ב- index + x
במאגר המקורי.
פרמטרים
מַדָד | קיזוז חדש עבור חלון זה |
---|
זורק
IndexOutOfBoundsException | אם לא ניתן להחליק את החלון מכיוון שהוא חורג מגבולות המאגר המקוריים |
---|
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. 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|---------------------------|--------------------------------------------------------------------------------|"]]