FastElementSequence

सार्वजनिक अंतिम वर्ग FastElementSequence

एक अनुक्रम अपने तत्वों को पुनरावृत्त करते समय समान NdArray उदाहरण को पुन: चक्रित करता है

सार्वजनिक निर्माता

FastElementSequence ( AbstractNdArray <T, U> ndArray, int आयामIdx, U तत्व, DataBufferWindow <?> elementWindow)

सार्वजनिक तरीके

NdArraySequence <यू>
स्लाइस के रूप में ()
प्रत्येक तत्व को एक नए स्लाइस के रूप में लौटाता है।
खालीपन
forEachIndexed (BiConsumer<long[], U> उपभोक्ता)
इटरेटर<यू>

विरासत में मिली विधियाँ

सार्वजनिक निर्माता

सार्वजनिक FastElementSequence ( AbstractNdArray <T, U> ndArray, int आयामIdx, U तत्व, DataBufferWindow <?> elementWindow)

सार्वजनिक तरीके

सार्वजनिक NdArraySequence <U> asSlices ()

प्रत्येक तत्व को एक नए स्लाइस के रूप में लौटाता है।

पारंपरिक जावा संग्रहों के विपरीत, NdArraySequence के तत्व क्षणिक होते हैं, यानी प्रत्येक पुनरावृत्ति के लिए नए NdArray उदाहरण आवंटित किए जाते हैं। प्रदर्शन को बेहतर बनाने के लिए, DataBufferWindow का उपयोग करके, इस अनुक्रम के सभी तत्वों को देखने के लिए उसी उदाहरण को पुन: उपयोग किया जा सकता है।

हालाँकि, कुछ मामलों में, यह सुनिश्चित करने के लिए ऐसे अनुकूलन को अक्षम करना बेहतर हो सकता है कि लौटाया गया प्रत्येक तत्व मूल सरणी का एक नया टुकड़ा है। उदाहरण के लिए, यदि देखे गए एक या अधिक तत्वों को अनुक्रम पुनरावृत्ति के दायरे से परे रहना चाहिए, asSlices() यह सुनिश्चित करता है कि अनुक्रम द्वारा लौटाए गए सभी तत्व अद्वितीय उदाहरण हैं।

final List<IntNdArray> vectors = new ArrayList<>();
     IntNdArray matrix = NdArrays.ofInts(Shape.of(6, 6));
     ndArray.elements(0).forEach(e -> vectors::add);  // Not safe, as `e` might always be the same recycled instance
     ndArray.elements(0).asSlices().forEach(e -> vectors::add);  // Safe, each `e` is a distinct NdArray instance
 

रिटर्न
  • एक अनुक्रम जो प्रत्येक तत्व को एक नए स्लाइस के रूप में पुनरावृत्त करके लौटाता है

प्रत्येक अनुक्रमित के लिए सार्वजनिक शून्य (BiConsumer<long[], U> उपभोक्ता)

सार्वजनिक इटरेटर<यू> इटरेटर ()