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() + step . إذا كانت step إيجابية، فسوف تنزلق النافذة للأمام. إذا كانت سلبية، فسوف تنزلق للخلف.

حدود
خطوة القيمة المراد إضافتها إلى الإزاحة الحالية لهذه النافذة
عائدات
  • هذه الحالة
رميات
IndexOutOfBoundsException إذا كان لا يمكن تحريك النافذة لأنها تتجاوز حدود المخزن المؤقت الأصلي

الملخص العام DataBufferWindow <B> SlideTo (فهرس طويل)

يحرك النافذة في الموضع المحدد في المخزن المؤقت الأصلي.

يظل حجم النافذة كما هو ويتم ضبط إزاحتها على index ، بحيث يؤدي الوصول إلى قيمة buffer() في الفهرس x إلى إرجاع القيمة عند index + x في المخزن المؤقت الأصلي.

حدود
فِهرِس إزاحة جديدة لهذه النافذة
عائدات
  • هذه الحالة
رميات
IndexOutOfBoundsException إذا كان لا يمكن تحريك النافذة لأنها تتجاوز حدود المخزن المؤقت الأصلي