Znane podklasy pośrednie FastElementSequence <T, U rozszerza NdArray <T>>, SingleElementSequence <T, U rozszerza NdArray <T>>, SlicingElementSequence <T, U rozszerza NdArray <T>> |
Sekwencja elementów tablicy N-wymiarowej.
NdArraySequence
służy do przechodzenia 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
Powroty
- sekwencja zwracająca każdy element iterowany jako nowy wycinek
Zobacz także
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 |
---|