DataBufferWindow

رابط عمومی 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 اگر پنجره نمی تواند لغزنده شود زیرا از محدودیت های بافر اصلی فراتر می رود