NdArraySequence

interfejs publiczny NdArraySequence
Znane podklasy pośrednie

Sekwencja elementów tablicy N-wymiarowej.

NdArraySequence służy do przechodzenia przez NdArray w danym wymiarze i odwiedzania każdego z jego elementów. Na przykład, mając macierz nxm na osiach [x, y] , elementy są iterowane w następującej kolejności:

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

Metody publiczne

streszczenie NdArraySequence <T>
jako plastry ()
Zwraca każdy element jako nowy plasterek.
abstrakcyjna pustka
forEachIndexed (BiConsumer<long[], T> konsument)
Odwiedź każdy element tej iteracji i jego odpowiednie współrzędne.

Metody dziedziczone

Metody publiczne

publiczne streszczenie NdArraySequence <T> asSlices ()

Zwraca każdy element jako nowy plasterek.

W przeciwieństwie do konwencjonalnych kolekcji Java, elementy NdArraySequence są przejściowe, tj. dla każdej iteracji przydzielane są nowe instancje NdArray . Aby poprawić wydajność, tę samą instancję można odtworzyć w celu wyświetlenia wszystkich elementów tej sekwencji przy użyciu DataBufferWindow .

Jednak w niektórych przypadkach lepszym rozwiązaniem może być wyłączenie takich optymalizacji, aby mieć pewność, że każdy zwrócony element będzie nowym wycinkiem oryginalnej tablicy. Na przykład, jeśli jeden lub więcej odwiedzonych elementów musi wykraczać poza zakres iteracji sekwencji, asSlices() upewnia się, że wszystkie elementy zwrócone przez sekwencję są unikalnymi instancjami.

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
 

Zwroty
  • sekwencja zwracająca każdy element iterowany jako nowy wycinek
Zobacz też

publiczna abstrakcja void forEachIndexed (BiConsumer<long[], T> Consumer)

Odwiedź każdy element tej iteracji i jego odpowiednie współrzędne.

Ważne: metoda konsumencka nie powinna przechowywać odniesień do współrzędnych, ponieważ mogą one być modyfikowane i ponownie wykorzystywane podczas iteracji w celu poprawy wydajności.

Parametry
konsument metoda wywoływania dla każdego elementu