ज्ञात अप्रत्यक्ष उपवर्ग 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
इंस्टेंसेस स्टेटफुल हैं और थ्रेड-सुरक्षित नहीं हैं।
सार्वजनिक तरीके
सार बी | बफर () इस विंडो का समर्थन करने वाला बफ़र लौटाता है। |
अमूर्त लंबा | ऑफसेट () मूल बफ़र में इस विंडो का वर्तमान ऑफ़सेट लौटाता है। |
अमूर्त लंबा | आकार () इस बफ़र विंडो का आकार लौटाता है। |
सार डेटाबफ़रविंडो <बी> | स्लाइड (लंबा कदम) step तत्वों की विंडो को मूल बफ़र में ले जाता है। |
सार डेटाबफ़रविंडो <बी> | स्लाइडटू (लंबा सूचकांक) विंडो को मूल बफ़र में दिए गए स्थान पर ले जाता है। |
सार्वजनिक तरीके
सार्वजनिक सार बी बफर ()
इस विंडो का समर्थन करने वाला बफ़र लौटाता है।
प्रत्येक विंडो इंस्टेंस का अपना बफ़र होता है जो मूल 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());
रिटर्न
- इस विंडो का बफ़र
सार्वजनिक सार लंबी ऑफसेट ()
मूल बफ़र में इस विंडो का वर्तमान ऑफ़सेट लौटाता है।
सार्वजनिक सार लंबा आकार ()
इस बफ़र विंडो का आकार लौटाता है।
सार्वजनिक सार डेटाबफ़रविंडो <बी> स्लाइड (लंबा चरण)
step
तत्वों की विंडो को मूल बफ़र में ले जाता है।
विंडो का आकार समान रहता है और इसका ऑफसेट offset() + step
पर सेट होता है। यदि step
सकारात्मक है, तो विंडो आगे की ओर खिसक जाएगी। यदि यह नकारात्मक है, तो यह पीछे की ओर खिसक जाएगा।
पैरामीटर
कदम | इस विंडो के वर्तमान ऑफसेट में जोड़ने के लिए मान |
---|
रिटर्न
- यह उदाहरण
फेंकता
IndexOutOfBoundsException | यदि विंडो को स्लाइड नहीं किया जा सकता क्योंकि यह मूल बफ़र सीमा से परे चला जाता है |
---|
सार्वजनिक सार डेटाबफ़रविंडो <बी> स्लाइडटू (लंबा सूचकांक)
विंडो को मूल बफ़र में दिए गए स्थान पर ले जाता है।
विंडो का आकार समान रहता है और इसका ऑफसेट index
पर सेट होता है, ताकि इंडेक्स x
पर buffer()
के मान तक पहुंचने से मूल बफर में index + x
पर मान वापस आ जाएगा।
पैरामीटर
अनुक्रमणिका | इस विंडो के लिए नया ऑफसेट |
---|
रिटर्न
- यह उदाहरण
फेंकता
IndexOutOfBoundsException | यदि विंडो को स्लाइड नहीं किया जा सकता क्योंकि यह मूल बफ़र सीमा से परे चला जाता है |
---|