Bilinen Dolaylı Alt Sınıflar AbstractDataBufferWindow <B DataBuffer'ı genişletir <?>> |
DataBuffer
bir bölümünü görüntülemek için değiştirilebilir bir kapsayıcı.
Veri arabellek pencereleri sabit bir boyuta sahiptir ve offset(long)
yaptığı gibi, yeni bir arabellek örneği tahsis etmeden verilerin farklı görünümlerini sağlamak için bir arabellek boyunca "slide"
. Bu işlem sık sık tekrarlandığında genel performansı artırır. Örneğin:
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
örnekleri durum bilgilidir ve iş parçacığı açısından güvenli değildir.
Genel Yöntemler
özet B | tampon () Bu pencereyi destekleyen arabelleği döndürür. |
soyut uzun | telafi etmek () Bu pencerenin orijinal arabellekteki geçerli uzaklığını döndürür. |
soyut uzun | boyut () Bu arabellek penceresinin boyutunu döndürür. |
özet DataBufferWindow <B> | slayt (uzun adım) Orijinal arabellekteki step öğelerinin penceresini taşır. |
özet DataBufferWindow <B> | SlideTo (uzun dizin) Pencereyi orijinal arabellekte belirtilen konuma taşır. |
Genel Yöntemler
genel özet B arabelleği ()
Bu pencereyi destekleyen arabelleği döndürür.
Her pencere örneğinin, orijinal DataBuffer
bir görünüm sağlayan kendi arabelleği vardır. Pencere farklı uzaklıklara kaydığında arabellekler mutasyona uğrar. Örneğin:
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());
İade
- bu pencerenin arabelleği
genel soyut uzun uzaklık ()
Bu pencerenin orijinal arabellekteki geçerli uzaklığını döndürür.
genel özet uzun boy ()
Bu arabellek penceresinin boyutunu döndürür.
genel özet DataBufferWindow <B> slaytı (uzun adım)
Orijinal arabellekteki step
öğelerinin penceresini taşır.
Pencerenin boyutu aynı kalır ve uzaklığı offset() + step
olarak ayarlanır. step
pozitifse pencere ileri doğru kayar. Negatif ise geriye doğru kayar.
Parametreler
adım | bu pencerenin geçerli uzaklığına eklenecek değer |
---|
İade
- bu örnek
Atar
IndexOutOfBoundsException | pencere orijinal arabellek sınırlarını aştığı için kaydırılamıyorsa |
---|
genel özet DataBufferWindow <B> SlideTo (uzun dizin)
Pencereyi orijinal arabellekte belirtilen konuma taşır.
Pencerenin boyutu aynı kalır ve uzaklığı index
olarak ayarlanır, böylece x
indeksindeki buffer()
değerine erişim, orijinal tampondaki index + x
değeri döndürür.
Parametreler
dizin | bu pencere için yeni ofset |
---|
İade
- bu örnek
Atar
IndexOutOfBoundsException | pencere orijinal arabellek sınırlarını aştığı için kaydırılamıyorsa |
---|