NdArraySequence

ממשק ציבורי NdArraySequence
תת-מחלקות עקיפות ידועות

רצף של אלמנטים של מערך N-ממדי.

NdArraySequence משמש למעבר NdArray בממד נתון ולבקר בכל אחד מהאלמנטים שלו. לדוגמה, בהינתן מטריצת nxm על צירי [x, y] , אלמנטים חוזרים בסדר הבא:

x 0 y 0 , x 0 y 1 , ..., x 0 y m-1 , x 1 y 0 , x 1 y 1 , ..., x n-1 y m-1

שיטות ציבוריות

מופשט NdArraySequence <T>
asSlices ()
מחזיר כל רכיב כפרוסה חדשה.
ריק מופשט
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
 

מחזיר
  • רצף שמחזיר כל רכיב חוזר כפרוסה חדשה
ראה גם

תקציר ציבורי ריק עבורEachIndexed (BiConsumer<long[], T> צרכן)

בקר בכל רכיב של איטרציה זו ובקואורדינטות שלהם.

חשוב: שיטת הצרכן לא צריכה לשמור התייחסות לקואורדינטות מכיוון שהן עשויות להיות ניתנות לשינוי ושימוש חוזר במהלך האיטרציה כדי לשפר את הביצועים.

פרמטרים
צַרכָן שיטה להפעיל עבור כל רכיב