| 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 |
|---|