DataBufferWindow

genel arayüz DataBufferWindow
Bilinen Dolaylı Alt Sınıflar

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) un 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());
 

İadeler
  • 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
İadeler
  • 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
İadeler
  • bu örnek
Atar
IndexOutOfBoundsException pencere orijinal arabellek sınırlarını aştığı için kaydırılamıyorsa