الفئات الفرعية غير المباشرة المعروفة FastElementSequence <T، U يمتد NdArray <T>>، SingleElementSequence <T، U يمتد NdArray <T>>، SlicingElementSequence <T، U يمتد NdArray <T>> |
تسلسل عناصر مصفوفة ذات أبعاد N.
يتم استخدام NdArraySequence
لاجتياز NdArray
في بعد معين وزيارة كل عنصر من عناصره. على سبيل المثال، في حالة وجود مصفوفة nxm
على المحاور [x, y]
، يتم تكرار العناصر بالترتيب التالي:
س 0 ص 0 , س 0 ص 1 , ..., س 0 ص م-1 , س 1 ذ 0 , س 1 ذ 1 , ..., س ن-1 ص م-1
الأساليب العامة
مجردة NdArraySequence <T> | كشرائح () إرجاع كل عنصر كشريحة جديدة. |
الفراغ المجرد | forEachIndexed (BiConsumer<long[], T> المستهلك) قم بزيارة كل عنصر من عناصر هذا التكرار والإحداثيات الخاصة بكل منها. |
الطرق الموروثة
الأساليب العامة
الملخص العام NdArraySequence <T> asSlices ()
إرجاع كل عنصر كشريحة جديدة.
على عكس مجموعات Java التقليدية، تكون عناصر 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
المرتجعات
- تسلسل يُرجع كل عنصر تم تكراره كشريحة جديدة
انظر أيضا
الفراغ الملخص العام forEachIndexed (BiConsumer<long[], T> Consumer)
قم بزيارة كل عنصر من عناصر هذا التكرار والإحداثيات الخاصة بكل منها.
هام: يجب ألا تحتفظ طريقة المستهلك بمرجع إلى الإحداثيات لأنها قد تكون قابلة للتغيير وإعادة استخدامها أثناء التكرار لتحسين الأداء.
حدود
مستهلك | طريقة الاستدعاء لكل عنصر |
---|