الفئات الفرعية غير المباشرة المعروفة AbstractDataBufferWindow <B يمتد DataBuffer <?>> |
حاوية قابلة للتغيير لعرض جزء من 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 | إذا كان لا يمكن تحريك النافذة لأنها تتجاوز حدود المخزن المؤقت الأصلي |
---|